CHANGELOG.md 20.1 KB
Newer Older
1 2 3
Yii Framework 2 Change Log
==========================

Qiang Xue committed
4 5
2.0.0 beta under development
----------------------------
6
- Bug #1265: AssetController does not override 'js' and 'css' for compressed bundles (klimov-paul)
7
- Bug #1326: The `visible` setting for `DetailView` doesn't work as expected (qiangxue)
Qiang Xue committed
8
- Bug #1412: `FileValidator` and `ImageValidator` still trigger `uploadRequired` error in some case when `skipOnEmpty` is true and no upload is provided (qiangxue)
9
- Bug #1446: Logging while logs are processed causes infinite loop (qiangxue)
Qiang Xue committed
10
- Bug #1497: Localized view files are not correctly returned (mintao)
11
- Bug #1500: Log messages exported to files are not separated by newlines (omnilight, qiangxue)
12
- Bug #1504: Debug toolbar isn't loaded successfully in some environments when xdebug is enabled (qiangxue)
13
- Bug #1509: The SQL for creating Postgres RBAC tables is incorrect (qiangxue)
14
- Bug #1545: It was not possible to execute db Query twice, params where missing (cebe)
15
- Bug #1550: fixed the issue that JUI input widgets did not property input IDs.
16
- Bug #1654: Fixed the issue that a new message source object is generated for every new message being translated (qiangxue)
17
- Bug #1582: Error messages shown via client-side validation should not be double encoded (qiangxue)
18
- Bug #1591: StringValidator is accessing undefined property (qiangxue)
19
- Bug #1597: Added `enableAutoLogin` to basic and advanced application templates so "remember me" now works properly (samdark)
20
- Bug #1631: Charset is now explicitly set to UTF-8 when serving JSON (samdark)
Alexander Makarov committed
21
- Bug #1635: `yii\jui\SliderInput` wasn't properly initialized (samdark)
Qiang Xue committed
22
- Bug #1659: MSSQL doesn't support limit (Ana1oliy)
Qiang Xue committed
23
- Bug #1686: ActiveForm is creating duplicated messages in error summary (qiangxue)
24
- Bug #1704: Incorrect regexp is used in `Inflector::camelize()` (qiangxue)
25
- Bug #1710: OpenId auth client does not request required attributes correctly (klimov-paul)
Alexander Makarov committed
26 27
- Bug #1798: Fixed label attributes for array fields (zhuravljov)
- Bug #1800: Better check for `$_SERVER['HTTPS']` in `yii\web\Request::getIsSecureConnection()` (ginus, samdark)
28
- Bug #1812: Hide potential warning message due to race condition occurring to `Session::regenerateID()` call (qiangxue)
29
- Bug #1827: Debugger toolbar is loaded twice if an action is calling `run()` to execute another action (qiangxue)
Mark committed
30
- Bug #1868: Added ability to exclude tables from FixtureController apply/clear actions. (Ragazzo)
Mark committed
31
- Bug #1869: Fixed tables clearing. `TRUNCATE` changed to `DELETE` to avoid postgresql tables checks (and truncating all tables) (Ragazzo)
32
- Bug #1870: Validation errors weren't properly translated when using clientside validation (samdark)
33
- Bug #1930: Fixed domain based URL matching for website root (samdark)
34
- Bug #1937: Fixed wrong behavior or advanced app's `init --env` when called without parameter actually specified (samdark)
35
- Bug #1959: `Html::activeCheckbox` wasn't respecting custom values for checked/unchecked state (klevron, samdark)
36
- Bug #1965: `Controller::findLayoutFile()` returns incorrect file path when layout name starts with a slash (qiangxue)
37
- Bug #1992: In module scenario that use 'site/captcha' will get wrong refreshUrl (callmez)
Carsten Brandt committed
38
- Bug #1993: afterFind event in AR is now called after relations have been populated (cebe, creocoder)
Kevin LEVRON committed
39
- Bug #1998: Unchecked required checkbox never pass client validation (klevron)
40
- Bug #2084: AssetController adjusting CSS URLs declared at same line fixed (klimov-paul)
41
- Bug #2091: `QueryBuilder::buildInCondition()` fails to handle array not starting with index 0 (qiangxue)
42
- Bug #2160: SphinxQL does not support OFFSET (qiangxue, romeo7)
43
- Bug #2209: When I18N message translation is missing source language is now used for formatting (samdark)
44
- Bug #2212: `yii\gridview\DataColumn` generates incorrect labels when used with nosql DB and there is no data (qiangxue)
45
- Bug #2298: Fixed the bug that Gii controller generator did not allow digit in the controller ID (qiangxue)
46
- Bug #2303: Fixed the bug that `yii\base\Theme::pathMap` did not support dynamic update with path aliases (qiangxue)
47
- Bug #2324: Fixed QueryBuilder bug when building a query with "query" option (mintao)
48
- Bug #2399: Fixed the bug that AssetBundle did not handle relative URLs correctly (qiangxue)
49
- Bug #2502: Unclear error message when `$_SERVER['DOCUMENT_ROOT']` is empty (samdark)
50
- Bug #2519: MessageSource removed translation messages when event handler was bound to `missingTranslation`-event (cebe)
51
- Bug: Fixed `Call to a member function registerAssetFiles() on a non-object` in case of wrong `sourcePath` for an asset bundle (samdark)
52
- Bug: Fixed incorrect event name for `yii\jui\Spinner` (samdark)
53
- Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe)
54
- Bug: Fixed issue with tabular input on ActiveField::radio() and ActiveField::checkbox() (jom)
55
- Bug: Fixed the issue that query cache returns the same data for the same SQL but different query methods (qiangxue)
56
- Bug: Fixed URL parsing so it's now properly giving 404 for URLs like `http://example.com//////site/about` (samdark)
57
- Bug: Fixed `HelpController::getModuleCommands` issue where it attempts to scan a module's controller directory when it doesn't exist (jom)
58
- Bug: Fixed an issue with Filehelper and not accessable directories which resulted in endless loop (cebe)
59
- Bug: Fixed `$model->load($data)` returned `true` if `$data` and `formName` were empty (samdark)
60
- Bug: Fixed issue with `ActiveRelationTrait` preventing `ActiveQuery` from clearing events and behaviors on clone (jom)
Antonio Ramirez committed
61
- Enh #46: Added Image extension based on [Imagine library](http://imagine.readthedocs.org) (tonydspaniard)
62
- Enh #364: Improve Inflector::slug with `intl` transliteration. Improved transliteration char map. (tonydspaniard)
63
- Enh #797: Added support for validating multiple columns by `UniqueValidator` and `ExistValidator` (qiangxue)
64
- Enh #802: Added support for retrieving sub-array element or child object property through `ArrayHelper::getValue()` (qiangxue, cebe)
Qiang Xue committed
65
- Enh #938: Added `yii\web\View::renderAjax()` and `yii\web\Controller::renderAjax()` (qiangxue)
66
- Enh #1293: Replaced Console::showProgress() with a better approach. See Console::startProgress() for details (cebe)
67 68
- Enh #1406: DB Schema support for Oracle Database (p0larbeer, qiangxue)
- Enh #1437: Added ListView::viewParams (qiangxue)
69
- Enh #1469: ActiveRecord::find() now works with default conditions (default scope) applied by createQuery (cebe)
70
- Enh #1476: Add yii\web\Session::handler property (nineinchnick)
71
- Enh #1499: Added `ActionColumn::controller` property to support customizing the controller for handling GridView actions (qiangxue)
72
- Enh #1523: Query conditions now allow to use the NOT operator (cebe)
73
- Enh #1562: Added `yii\bootstrap\Tabs::linkOptions` (kartik-v)
74
- Enh #1572: Added `yii\web\Controller::createAbsoluteUrl()` (samdark)
75
- Enh #1579: throw exception when the given AR relation name does not match in a case sensitive manner (qiangxue)
76
- Enh #1581: Added `ActiveQuery::joinWith()` and `ActiveQuery::innerJoinWith()` to support joining with relations (qiangxue)
77
- Enh #1585: added schema parameter to createAbsoluteUrl() to force 'http' or 'https' (cebe)
Qiang Xue committed
78
- Enh #1601: Added support for tagName and encodeLabel parameters in ButtonDropdown (omnilight)
79
- Enh #1611: Added `BaseActiveRecord::markAttributeDirty()` (qiangxue)
80
- Enh #1633: Advanced application template now works with MongoDB by default (samdark)
81
- Enh #1634: Use masked CSRF tokens to prevent BREACH exploits (qiangxue)
82
- Enh #1641: Added `BaseActiveRecord::updateAttributes()` (qiangxue)
Mark committed
83
- Enh #1646: Added postgresql `QueryBuilder::checkIntegrity` and `QueryBuilder::resetSequence` (Ragazzo)
84
- Enh #1645: Added `Connection::$pdoClass` property (Ragazzo)
85
- Enh #1645: Added support for nested DB transactions (qiangxue)
86
- Enh #1681: Added support for automatically adjusting the "for" attribute of label generated by `ActiveField::label()` (qiangxue)
87
- Enh #1706: Added support for registering a single JS/CSS file with dependency (qiangxue)
Carsten Brandt committed
88
- Enh #1773: keyPrefix property of Cache is not restricted to alnum characters anymore, however it is still recommended (cebe)
89
- Enh #1809: Added support for building "EXISTS" and "NOT EXISTS" query conditions (abdrasulov)
90
- Enh #1839: Added support for getting file extension and basename from uploaded file (anfrantic)
Alexander Kochetov committed
91
- Enh #1852: ActiveRecord::tableName() now returns table name using DbConnection::tablePrefix (creocoder)
92
- Enh #1881: Improved `yii\bootstrap\NavBar` with `containerOptions`, `innerContainerOptions` and `renderInnerContainer` (creocoder)
93
- Enh #1894: The path aliases `@webroot` and `@web` are now available right after the application is initialized (qiangxue)
94
- Enh #1921: Grid view ActionColumn now allow to name buttons like `{controller/action}` (creocoder)
95
- Enh #1973: `yii message/extract` is now able to generate `.po` files (SergeiKutanov, samdark)
96
- Enh #1984: ActionFilter will now mark event as handled when action run is aborted (cebe)
97
- Enh #2003: Added `filter` property to `ExistValidator` and `UniqueValidator` to support adding additional filtering conditions (qiangxue)
Alexander Makarov committed
98
- Enh #2008: `yii message/extract` is now able to save translation strings to database (kate-kate, samdark)
99
- Enh #2043: Added support for custom request body parsers (danschmidt5189, cebe)
100
- Enh #2051: Do not save null data into database when using RBAC (qiangxue)
101
- Enh #2054: Added support for using custom application configuration with the console command runner (qiangxue)
Alexander Makarov committed
102 103 104 105
- Enh #2079:
	- i18n now falls back to `en` from `en-US` if message translation isn't found (samdark)
	- View now falls back to `en` from `en-US` if file not found (samdark)
	- Default `sourceLanguage` and `language` are now `en` (samdark)
Alexander Makarov committed
106
- Enh #2101: Gii is now using model labels when generating search (thiagotalma)
Alexander Kochetov committed
107 108
- Enh #2102: DetailView now allow use `category.name` as attribute name (creocoder)
- Enh #2102: DetailView now allow use custom label in string format like `name:format:label` (creocoder)
Qiang Xue committed
109
- Enh #2103: Renamed AccessDeniedHttpException to ForbiddenHttpException, added new commonly used HTTP exception classes (danschmidt5189)
Ivan Pomortsev committed
110
- Enh #2124: Added support for UNION ALL queries (Ivan Pomortsev, iworker)
111
- Enh #2132: Allow url of CSS and JS files registered in yii\web\View to be url alias (cebe)
112
- Enh #2144: `Html` helper now supports rendering "data" attributes (qiangxue)
113
- Enh #2156: `yii migrate` now automatically creates `migrations` directory if it does not exist (samdark)
114 115 116 117
- Enh:#2211: Added typecast database types into php types (dizews)
- Enh #2240: Improved `yii\web\AssetManager::publish()`, `yii\web\AssetManager::getPublishedPath()` and `yii\web\AssetManager::getPublishedUrl()` to support aliases (vova07)
- Enh #2325: Adding support for the `X-HTTP-Method-Override` header in `yii\web\Request::getMethod()` (pawzar)
- Enh #2364: Take into account current error reporting level in error handler (gureedo)
118
- Enh #2387: Added support for fetching data from database in batches (nineinchnick, qiangxue)
119
- Enh #2392: Added `addCssStyle()`, `removeCssStyle()`, `cssStyleFromArray()` and `cssStyleToArray()` to `Html` (qiangxue, kartik-v, Alex-Code)
120
- Enh #2417: Added possibility to set `dataType` for `$.ajax` call in yii.activeForm.js (Borales)
121
- Enh #2436: Label of the attribute, which looks like `relatedModel.attribute`, will be received from the related model if it available (djagya)
122
- Enh #2415: Added support for inverse relations (qiangxue)
123
- Enh #2490: `yii\db\Query::count()` and other query scalar methods now properly handle queries with GROUP BY clause (qiangxue)
124
- Enh #2491: Added support for using the same base class name of search model and data model in Gii (qiangxue)
125
- Enh #2499: Added ability to downgrade migrations by their absolute apply time (resurtm, gorcer)
126
- Enh #2526: Allow for null values in batchInsert (skotos)
127
- Enh: Added support for using arrays as option values for console commands (qiangxue)
Luciano Baraglia committed
128
- Enh: Added `favicon.ico` and `robots.txt` to default application templates (samdark)
129
- Enh: Added `Widget::autoIdPrefix` to support prefixing automatically generated widget IDs (qiangxue)
130
- Enh: Support for file aliases in console command 'message' (omnilight)
131
- Enh: Sort and Pagination can now create absolute URLs (cebe)
132
- Enh: Added support for using array-typed arguments for console commands (qiangxue)
133
- Enh: Added support for installing packages conforming to PSR-4 standard (qiangxue)
134
- Enh: Better exception message when class cannot be loaded (samdark)
135
- Enh: `init` of advanced application now allows to specify answer for overwriting files via `init --overwrite=n` (samdark)
136
- Enh: Added `TableSchema::fullName` property (qiangxue)
Qiang Xue committed
137
- Enh: yii\codeception\TestCase now supports loading and using fixtures via Yii fixture framework (qiangxue)
138
- Enh: Added ability to get incoming headers (dizews)
139
- Enh: Added `beforeRun()` and `afterRun()` to `yii\base\Action` (qiangxue)
Qiang Xue committed
140
- Enh: Added support for using timeZone with `yii\base\Formatter` (dizews)
141
- Enh: Added `yii\web\View::POS_LOAD` (qiangxue)
142
- Enh: Added `yii\web\Response::clearOutputBuffers()` (qiangxue)
143
- Enh: Improved `QueryBuilder::buildLimit()` to support big numbers (qiangxue)
144
- Enh: Added support for building SQLs with sub-queries (qiangxue)
145
- Chg #1186: Changed `Sort` to use comma to separate multiple sort fields and use negative sign to indicate descending sort (qiangxue)
146
- Chg #1519: `yii\web\User::loginRequired()` now returns the `Response` object instead of exiting the application (qiangxue)
147
- Chg #1586: `QueryBuilder::buildLikeCondition()` will now escape special characters and use percentage characters by default (qiangxue)
148
- Chg #1610: `Html::activeCheckboxList()` and `Html::activeRadioList()` will submit an empty string if no checkbox/radio is selected (qiangxue)
149
- Chg #1643: Added default value for `Captcha::options` (qiangxue)
Alexander Makarov committed
150
- Chg #1796: Removed `yii\base\Controller::getActionParams()` (samdark)
151
- Chg #1835: `CheckboxColumn` now renders checkboxes whose values are the corresponding data key values (qiangxue)
152
- Chg #1821: Changed default values for yii\db\Connection username and password to null (cebe)
153
- Chg #1844: `Response::sendFile()` and other file sending methods will not send the response (qiangxue)
Alexander Kochetov committed
154
- Chg #1852: DbConnection::tablePrefix default value now 'tbl_' (creocoder)
155
- Chg #1958: `beforeSubmit` in `yii.activeform` is now executed after validation and before form submission (6pblcb)
Alexander Makarov committed
156
- Chg #2025: Removed ability to declare scopes in ActiveRecord (samdark)
157 158 159 160 161
- Chg #2043:
	- Renamed `yii\web\Request::acceptedLanguages` to `acceptableLanguages` (qiangxue)
	- Removed `yii\web\Request::getPost()`, `getPut()`, `getDelete()`, `getPatch()` in favor of `getBodyParam()` (cebe)
	- Renamed `yii\web\Request::get()` to `getQueryParams()` and `getRestParams()` to `getBodyParams()` (cebe)
	- Added `yii\web\Request::get($name = null, $defaultValue = null)` and `yii\web\Request::post($name = null, $defaultValue = null)` (samdark)
Qiang Xue committed
162
- Chg #2059: Implemented git-flavored file excluding/filtering for `FileHelper` (nineinchnick)
163
- Chg #2063: Removed `yii\web\Request::acceptTypes` and renamed `yii\web\Request::acceptedContentTypes` to `acceptableContentTypes` (qiangxue)
Qiang Xue committed
164
- Chg #2157: The '*' category pattern will match all categories that do not match any other patterns listed in `I18N::translations` (qiangxue, Ragazzo)
Alexander Makarov committed
165
- Chg #2161: Added ability to use `return` in `Widget::run` (samdark)
Alexander Makarov committed
166
- Chg #2173: Removed `StringHelper::diff()`, Moved `phpspec/php-diff` dependency from `yiisoft/yii2` to `yiisoft/yii2-gii` (samdark)
167
- Chg #2175: QueryBuilder will now append UNION statements at the end of the primary SQL (qiangxue)
168
- Chg #2210: Mysql driver will now treat `tinyint(1)` as integer instead of boolean (qiangxue)
169
- Chg #2248: Renamed `yii\base\Model::DEFAULT_SCENARIO` to `yii\base\Model::SCENARIO_DEFAULT` (samdark)
170
- Chg #2281: Renamed `ActiveRecord::create()` to `populateRecord()` and changed signature. This method will not call instantiate() anymore (cebe)
171
- Chg #2405: The CSS class of `MaskedInput` now defaults to `form-control` (qiangxue)
172
- Chg #2426: Changed URL creation method signatures to be consistent (samdark)
173
- Chg: Renamed `yii\jui\Widget::clientEventsMap` to `clientEventMap` (qiangxue)
174
- Chg: Renamed `ActiveRecord::getPopulatedRelations()` to `getRelatedRecords()` (qiangxue)
175
- Chg: Renamed `attributeName` and `className` to `targetAttribute` and `targetClass` for `UniqueValidator` and `ExistValidator` (qiangxue)
176
- Chg: Added `yii\widgets\InputWidget::options` (qiangxue)
177
- Chg: Changed the signature of `urlCreator` and button creators for `yii\gridview\ActionColumn` (qiangxue)
178
- Chg: Updated HTMLPurified dependency to `4.6.*`.
179
- Chg: Changed Yii autoloader to support loading PSR-4 classes only (i.e. PEAR-styled classes not supported anymore) (qiangxue)
Alexander Makarov committed
180 181
- Chg: Changed the directory structure according to PSR-4. You have to update your application `index.php`,
       `index-test.php` and `yii` files to point to the new location of `Yii.php` (qiangxue, cebe)
182
- Chg: Advanced app template: moved database connection DSN, login and password to `-local` config not to expose it to VCS (samdark)
183
- Chg: Renamed `yii\web\Request::acceptedLanguages` to `acceptableLanguages` (qiangxue)
184
- Chg: Removed implementation of `Arrayable` from `yii\Object` (qiangxue)
185 186 187
- Chg #2146: Removed `ActiveRelation` class and `ActiveRelationInterface`, moved the functionality to `ActiveQuery`.
             All relational queries are now directly served by `ActiveQuery` allowing to use custom scopes in relations
             and also to declare arbitrary queries as relations.
188
			 Also removed `ActiveRecordInterface::createActiveRelation()` (cebe)
189
- Chg: The scripts in asset bundles are now registered in `View` at the end of `endBody()`. It was done in `endPage()` previously (qiangxue)
Qiang Xue committed
190
- Chg: Renamed `csrf-var` to `csrf-param` for CSRF header name (Dilip)
191 192 193 194 195 196 197 198 199 200 201 202
- Chg: The directory holding email templates is renamed from `mails` to `mail` (qiangxue)
- Chg: Renamed properties `fooVar` to `fooParam` for various classes (qiangxue)
	- Renamed `ActiveForm::ajaxVar` to `ajaxParam`
	- Renamed `Pagination::pageVar` to `pageParam`
	- Renamed `Sort::sortVar` to `sortParam`
	- Renamed `yii\web\Request::csrfVar` to `csrfParam`
	- Renamed `yii\web\Request::methodVar` to `methodParam`
	- Renamed `UrlManager::routeVar` to `routeParam`
	- Renamed `yii\web\Session::flashVar` to `flashParam`
	- Renamed `yii\web\User::idVar` to `idParam`
	- Renamed `yii\web\User::authTimeoutVar` to `authTimeoutParam`
	- Renamed `yii\web\User::returnUrlVar` to `returnUrlParam`
203
- Chg: Added `View::viewFile` and removed `ViewEvent::viewFile` (qiangxue)
204

205
- New #66: [Auth client library](https://github.com/yiisoft/yii2-authclient) OpenId, OAuth1, OAuth2 clients (klimov-paul)
206
- New #706: Added `yii\widgets\Pjax` and enhanced `GridView` to work with `Pjax` to support AJAX-update (qiangxue)
207
- New #1393: [Codeception testing framework integration](https://github.com/yiisoft/yii2-codeception) (Ragazzo)
208
- New #1438: [MongoDB integration](https://github.com/yiisoft/yii2-mongodb) ActiveRecord and Query (klimov-paul)
Qiang Xue committed
209
- New #1956: Implemented test fixture framework (qiangxue)
210
- New #2149: Added `yii\base\DynamicModel` to support ad-hoc data validation (qiangxue)
211
- New #2360: Added `AttributeBehavior` and `BlameableBehavior`, and renamed `AutoTimestamp` to `TimestampBehavior` (lucianobaraglia, qiangxue)
Qiang Xue committed
212
- New: Yii framework now comes with core messages in multiple languages
Qiang Xue committed
213 214
- New: Added yii\codeception\DbTestCase (qiangxue)

Qiang Xue committed
215 216

2.0.0 alpha, December 1, 2013
217
---------------------------
218

219
- Initial release.
220 221 222 223 224 225 226 227 228
- Official extensions released in this version:
  - [Twitter bootstrap 3.0](https://github.com/yiisoft/yii2-bootstrap)
  - [Jquery UI](https://github.com/yiisoft/yii2-jui)

  - [Debug Toolbar](https://github.com/yiisoft/yii2-debug)
  - [Gii code generator](https://github.com/yiisoft/yii2-gii)

  - [Elasticsearch integration](https://github.com/yiisoft/yii2-elasticsearch): ActiveRecord and Query
  - [Redis integration](https://github.com/yiisoft/yii2-redis): ActiveRecord, Cache and Session
Carsten Brandt committed
229
  - [Sphinx integration](https://github.com/yiisoft/yii2-sphinx): ActiveRecord and Query
230 231 232 233 234

  - [Swiftmailer](https://github.com/yiisoft/yii2-swiftmailer)

  - [Smarty View Renderer](https://github.com/yiisoft/yii2-smarty)
  - [Twig View Renderer](https://github.com/yiisoft/yii2-twig)