You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 KiB
144 KiB
Yii Framework 2 Change Log
2.0.10 under development
- Bug #7670: Added
UrlNormalizer
for normalizing requests with and without trailing slashes (rob006, cronfy, klimov-paul) - Bug #9027: Fixed descendant class of
yii\web\UploadedFile
returns parent instances in case invoked after it (andrewnester) - Bug #12428: Fixed
yii\db\mysql\QueryBuilder
causes warning when insert default rows into a table without primary key (DrmagicE) - Enh #6996: Added
yii\web\MultipartFormDataParser
, which allows proper processing of 'multipart/form-data' encoded non POST requests (klimov-paul) - Enh #9989: ActiveForm now respects formtarget, formmethod and formenctype attributes of submit button (AnatolyRugalev)
- Enh #12296: Added value validation to
yii\log\Target::setLevels()
(Mak-Di) - Enh #12193: Added the ability to suppress the generation of duplicate error messages in
Html::errorSummary
. Added the ability to display error messages beyond the first error for each model attribute (PowerGamer1) - Enh #12073: Added the ability to suppress the generation of input hint when it is specified through
Model::attributeHints()
(PowerGamer1) - Bug #7670: Added
UrlNormalizer
for normalizing requests with and without trailing slashes (rob006, cronfy, klimov-paul) - Bug #9101: Fixed
yii\web\View
to respectyii\web\AssetManager::appendTimstamp
property (githubjeka, silverfire) - Bug #9277: Fixed
yii\console\controllers\AssetController
looses custom options of 'target' bundles (petrabarus, klimov-paul) - Bug #9561: Fixed
canGetProperty()
andcanSetProperty()
returnsfalse
foryii\db\BaseActiveRecord
attributes (klimov-paul) - Bug #10567: Fixed
yii\console\controllers\AssetController
looses bundle override configuration, which makes it external one (klimov-paul) - Bug #10681: Reverted fix of beforeValidate event calling in
yii.activeForm.js
(silverfire) - Bug #11347: Fixed
yii\widgets\Pjax::registerClientScript()
to pass customcontainer
to the PJAX JS plugin (silverfire) - Bug #11461: Fixed migration tool error when create migrate with comma in
defaultValue
(pana1990, s-o-f) - Bug #11541: Fixed default MySQL integer display width for unsigned primary key (h311ion, rob006, cebe)
- Bug #11715: Fixed JS validation when the same model's attribute file input is listed more than once on the same page (uaoleg)
- Bug #11726:
DbSession
was echoing database errors in production mode (samdark, pastuhov, deadkrolik) - Bug #11907: Fixed
yii\helpers\Console::getScreenSize()
on Windows was giving out width and height swapped (Spell6inder, samdark, cebe) - Bug #11912: Fixed PostgreSQL Schema to support negative default values for integer/float/decimal columns (nsknewbie)
- Bug #11922: Fixed
yii\log\FileTarget
does not applyfileMode
for rotated via copy files (klimov-paul) - Bug #11947: Fixed
gridData
initialization inyii.gridView.js
(pavlm) - Bug #11949: Fixed
ActiveField::end
generates close tag when it'soption['tag']
is null (egorio) - Bug #11949: Fixed
ActiveField::end()
generates close tag when it'soption['tag']
isnull
(egorio) - Bug #11977: Fixed
yii\rest\Serializer::serialize()
serializes DataProvider incorrectly, if models keys do not compose integer sequence (dcb9, klimov-paul) - Bug #11990: Fixed
yii\db\BaseActiveRecord::refresh()
may set incorrectoldAttributes
values at some cases (only-victor) - Bug #12009: Do not render
for
field label attribute for active formRadioList
andCheckboxList
(shevchik87, samdark) - Bug #12030: Fixed
yii\base\Model::offsetExists()
throws an exception on un-existing field (klimov-paul) - Bug #12037: Fixed 2.0.7 regression in memcahe/memcached cache backend (samdark)
- Bug #12043: Fixed
yii\helpers\Json::encode()
encodes empty array returned byJsonSerializable::jsonSerialize()
as object (klimov-paul) - Bug #12053:
./yii migrate/create
was generating wrong code when usingbigPrimaryKey
(VojtechH, samdark) - Bug #12068: Added missing
LEVEL_PROFILE
for the syslog target (Mak-Di) - Bug #12100: Fixed
yii\filters\HttpCache
was sending an empty Pragma header (sergeymakinen) - Bug #12107: Fixed REST Serializer to validate input for 'expand' and 'fields' parameter, which crashed on array input (njspok, cebe)
- Bug #12143: Fixed
yii\db\BaseActiveRecord::updateAttributes()
changeisNewRecord
state for the new model (klimov-paul) - Bug #12152: Fixed BC break for
UniqueValidator
custom message when validating multiple attributes (rob006) - Bug #12293: Fixed MSSQL
Schema::resolveTableNames()
when using linked database tables (hAppywAy) - Bug #12331: Fixed bug with incorrect currency formatter output, when
$thousandSeparator
was explicitly set (cebe) - Bug #12423: Fixed migration tool problem of creating fields with brackets in comment (pana1990)
- Bug #12428: Fixed
yii\db\mysql\QueryBuilder
causes warning when insert default rows into a table without primary key (DrmagicE) - Bug #12431: Fix bug when lock file was not removed after
yii\mutex\FileMutex::release()
(rob006) - Bug #12446: Disable slaves when execute migrations to resolve master-slave replication no-sync (lichunqiang)
- Bug #12463: Fixed
yii\web\Request::getBodyParams()
does not pass full 'content-type' value toyii\web\RequestParserInterface::parse()
(klimov-paul) - Bug #12537: Fixes issues with spaces in
StringHelper:truncateHtml
(Alex-Code) - Bug #12554: Fixed
yii\validators\UniqueValidator
error of getting first model indexed by field (DrDeath72) - Enh #384: Added ability to run migration from several locations via yii\console\controllers\BaseMigrateController::migrationNamespaces (klimov-paul)
- Enh #6996: Added
yii\web\MultipartFormDataParser
, which allows proper processing of 'multipart/form-data' encoded non POST requests (klimov-paul) - Enh #8719: Add support for HTML5 attributes on submitbutton (formaction/formmethod...) for ActiveForm (VirtualRJ)
- Enh #9469: Added support for namespaced migrations via yii\console\controllers\BaseMigrateController::migrationNamespaces (klimov-paul)
- Enh #9708: Added
yii\console\controllers\AssetController::deleteSource
option allowing deletion of the source asset files after compression (pana1990, klimov-paul) - Enh #9989: ActiveForm now respects formtarget, formmethod and formenctype attributes of submit button (AnatolyRugalev)
- Enh #10243: Added
yii\data\Sort::setAttributeOrders()
method allowing manual setup of current sort (klimov-paul) - Enh #10583: Do not silence session errors in debug mode (samdark)
- Enh #11096: Added support for PSR-2 style migration naming for namespaced migrations (klimov-paul)
- Enh #11275: Added possibility of unset or force replace former value in
ArrayHelper::merge()
(mdmunir, rob006) - Enh #11658: Added argument to
yii\grid\ActionColumn::urlCreator
callback, which holds reference to the column instance (klimov-paul) - Enh #11804: Added
yii\behaviors\AttributeTypecastBehavior
for maintaining of strict ActiveRecord attribute types (klimov-paul) - Enh #11950: Improve BaseArrayHelper::keyExists speed (egorio)
- Enh #11950: Improve
yii\helpers\BaseArrayHelper::keyExists()
speed (egorio) - Enh #11979: Added
yii\mutex\OracleMutex
which implements mutex "lock" mechanism via Oracle locks (zlakomanoff) - Enh #12028: Add -h|--help option to console command to display help information (pana1990)
- Enh #12038: Introduced
yii\base\ViewNotFoundException
which is thrown when views file doesn't exists, used it inViewAction
(samdark) - Enh #12048: Improved message extraction command performance (samdark)
- Enh #12073: Added the ability to suppress the generation of input hint when it is specified through
Model::attributeHints()
(PowerGamer1) - Enh #12082: Used
jQuery.on(
instead of event method to ensure forwards compatibility (newerton) - Enh #12099: HttpCache no longer returns 304 HTTP code when callbacks return null (sergeymakinen)
- Enh #12193: Added the ability to suppress the generation of duplicate error messages in
Html::errorSummary
. Added the ability to display error messages beyond the first error for each model attribute (PowerGamer1) - Enh #12230: Allows BaseHtml::activeListInput to override the field value (RangelReale)
- Enh #12296: Added value validation to
yii\log\Target::setLevels()
(Mak-Di) - Enh #12376: Added parameter to
yii.activeForm.js
validate()
method to be able to force validation (DrDeath72) - Enh #12382: Changed
yii\widgets\MaskedInput
to usejQuery
instead of$
to prevent conflicts (samdark) - Enh #12440: Added
yii\base\Event::offAll()
method allowing clear all registered class-level event handlers (klimov-paul) - Enh: Method
yii\console\controllers\AssetController::getAssetManager()
automatically enablesyii\web\AssetManager::forceCopy
in case it is not explicitly specified (pana1990, klimov-paul)
2.0.9 July 11, 2016
- Bug #6347:
inverseOf()
not working for dynamic relational queries (laszlovl) - Bug #8644: Fixed trying to ENABLE/DISABLE TRIGGER ALL on a view in PostgreSQL (ricpelo)
- Bug #9950: Updated
yii\grid\DataColumn::getHeaderCellLabel()
to extract attribute label from thefilterModel
of Grid (silverfire) - Bug #10613: Fixed PostgreSQL Schema to return correct column names for unique indexes that have mixed case column names (cebe)
- Bug #10681: Fixed active form
beforeValidate
wasn't triggered in some cases (lynicidn) - Bug #11252: Use strict comparison on ActiveRecord::hasAttribute() to avoid cases where it returns true when a number is passed to it (Faryshta)
- Bug #11322: Fixed incorrect error message in
yii\validators\UniqueValidator
for compositetargetAttribute
(PowerGamer1, silverfire, cebe) - Bug #11429: Fixed
yii\i18n\PhpMessageSource::loadFallbackMessages()
not to log error when source and language is same, but locales are different (silverfire) - Bug #11459: Fixed flash messages not destroyed when
session.auto_start = 1
set in php.ini (cartmanchen) - Bug #11498: Fixed inability to save serialized object into PostgreSQL binary column (klimov-paul)
- Bug #11507: Fixed
yii\validators\EachValidator::validateAttribute()
does not respectskipOnEmpty
rule parameter (webdevsega) - Bug #11523: Fixed
yii\web\User::checkRedirectAcceptable()
to treat acceptable content type*/*
as*
(silverfire) - Bug #11527: Fixed
bigPrimaryKey()
for SQLite (dynasource) - Bug #11528: Fixed MessageFormatter construction exception caught for PHP 7 compatibility (subdee, cebe)
- Bug #11532: Fixed casting of empty char value to
null
resulting in integrity constraint violation for not null columns (samdark) - Bug #11536: Fixed regression introduced in 2.0.8, where scalar value was not allowed in QueryBuilder
IN
condition anymore (cebe) - Bug #11549: Fixed
ArrayHelper::getValue()
to work properly with float keys (zsounder, AnikanovD) - Bug #11561: Fixed DI container throwing exceptions for optional dependencies (SamMousa)
- Bug #11571: Fixed
yii\db\ColumnSchemaBuilder
to work with custom column types (andrey-mokhov, silverfire) - Bug #11662: Fixed
schema-oci.sql
for RBAC (jonny7) - Bug #11672: Fixed
yii\validators\NumberValidator
erroring when value is an object without__toString()
method (SamMousa) - Bug #11686:
BaseArrayHelper::isIn()
comparison did not work in strict mode (taobig) - Bug #11693: Handle
QueryBuilder::batchInsert()
calls with no data to insert (rob006) - Bug #11723: Fixed PHP 7 + XDebug error handling displaying "Expected array for frame 0" (tanakahisateru)
- Bug #11735: Fixed
yii\web\UploadedFile
to returnnull
when there's no file uploaded (brummm) - Bug #11739: Fixed
ArrayHelper::index()
losing precision for float keys (AnikanovD) - Bug #11774: Fixed incorrect recusuive symlinks check in FileHelper (AnikanovD)
- Bug #11822: Fixed exception on non-string value provided as CSRF token (cebe)
- Bug #11847: Fixed
yii\widgets\Pjax
to properly respond with partials when custom selector is used for container (pigochu, samdark) - Bug #11863: Fixed usage of
mb_substr
with PHP < 5.4.8 where length of NULL was treated the same as 0 (samdark) - Bug #11865: Fixed setting
selected
for dropdown list using options (samdark) - Bug #11878: Fixed i18n gettext fallback language message loading (stevekr)
- Bug #11896: Fix for DROP TRIGGER in migrations from RBAC. (barradas-alberto)
- Enh #8795: Refactored
yii\web\User::loginByCookie()
in order to make it easier to override (maine-mike, silverfire) - Enh #9574: Implicit run
ColumnSchemaBuilder::null()
when default value is set tonull
. (rob006) - Enh #9948:
yii\rbac\PhpManager
now invalidates script file cache performed by 'OPCache' or 'APC' on file saving (klimov-paul) - Enh #10422: Added
null
method onyii\db\ColumnSchemaBuilder
to explicitly set column nullability (nevermnd) - Enh #11168:
yii\helpers\BaseHtml
now uses abstractedbooleanInput()
andactiveBooleanInput()
methods to renderradio()
,checkbox()
,activeRadio()
andactiveCheckbox()
(cesarnicola) - Enh #11195: Added ability to append custom string to schema builder column definition (df2, samdark)
- Enh #11212: Added headers to PO file in
yii\i18n\GettextPoFile::save()
(stevekr) - Enh #11414: Files specified as
null
inyii\web\AssetBundle
won't be registered (Razzwan) - Enh #11428: Speedup SQL query in
yii\db\oci\Schema::findColumns()
(SSiwek) - Enh #11432: Added HTTP status 421 "Misdirected Request" to list of statuses in
yii\web\Response
(dasmfm) - Enh #11438: Configurable
yii\helpers\Markdown
default flavor (mdmunir) - Enh #11462: Added support of filtering rules to
yii\log\Target::$logVar
(HaruAtari) - Enh #11462: Added
\yii\helpers\BaseArrayHelper::filter()
method (HaruAtari) - Enh #11484: Speed up
yii\db\oci\Schema::loadTableSchema()
for Oracle DBMS (SSiwek) - Enh #11490: Added
yii\data\ArrayDataProvider::$modelClass
property to specify a model used to provide column labels even when data array is empty (PowerGamer1) - Enh #11591: Added support for wildcards for
only
andexcept
atyii\base\ActionFilter
(klimov-paul) - Enh #11679: Extracted
CheckAccessInterface
fromManagerInterface
(SamMousa, samdark, mdomba) - Enh #11725: Added indexes on message tables (OndrejVasicek)
- Enh #11729: Added
yii\grid\CheckboxColumn::$cssClass
property to specify a class added to checkbox input (thiagotalma) - Enh #11808:
_table
and_column
suffixes are now required when generating migration (rob006) - Enh #11850: Introduced
yii\widgets\Pjax::$submitEvent
to be able to customize event triggering PJAX form submit (Bvanleeuwen) - Enh #11857:
yii\filters\AccessRule::$verbs
can now be configured in upper and lowercase (DrDeath72, samdark) - Chg #11364: Updated jQuery dependency to include versions
1.12.*
(cebe) - Chg #11683: Fixed fixture command to work with short syntax.
yii fixture "*, -User"
should be used instead ofyii fixture "*" -User
(Faryshta, samdark)
2.0.8 April 28, 2016
- Bug #7627: Fixed
yii\widgets\ActiveField
to handle inputs AJAX validation with changed ID properly (dizeee) - Bug #7717: Fixed the bug that
$properties
parameter inArrayHelper::toArray()
was not passed to recursive calls (quantum13) - Bug #9074: Fixed JS call
$('#grid').yiiGridView('getSelectedRows')
whenGridView::$showHeader
is set to false (NekitoSP, silverfire) - Bug #9851: Fixed partial commit / rollback in nested transactions (sammousa)
- Bug #9935: Fixed
yii\validators\EachValidator
does not invokevalidateAttribute()
method of the embedded validator (klimov-paul) - Bug #10201: Fixed bug in ActiveRecord, where relational data could not be fetched in case with composite key and join with IN condition (PaulVanSchayck, airmoi, joe-meyer, cebe)
- Bug #10235: Fixed
yii\console\Application::runAction
to not to corrupt response object (hiqsol) - Bug #10480: Fixed removing old identity cookie when loggin in as another user without logging out first (maine-mike)
- Bug #10617: Fixed
yii\web\Request::getBodyParams()
returnednull
instead of empty array if request body is empty and content type is application/json (samdark) - Bug #10784: Fixed
yii\grid\CheckboxColumn
to set correct value whenyii\grid\CheckboxColumn::$checkboxOptions
closure is used (nukkumatti) - Bug #10850: Fixed unable to use 'definitions' and 'aliases' at
yii\widgets\MaskedInput
(rahimov, klimov-paul) - Bug #10884: Fixed MessageFormatter for formatting messages when not all parameters are given (laxity7, cebe)
- Bug #10935: Fixed cache key collision in
yii\web\UrlManager::createUrl()
(sammousa) - Bug #10946: Fixed parameters binding to the SQL query in
yii\db\mysqlSchema::findConstraints()
(silverfire) - Bug #10969: Fixed generator migration tool with decimal params in column (pana1990)
- Bug #10974:
yii.js
- fixed error in ajaxPrefilter event handler, caused by blocked frame (maximal) - Bug #11012: Fixed
yii\web\UploadedFile::getBaseName()
to work with UTF-8 file names (hiscaler, silverfire) - Bug #11026: Fixed
StringHelper::truncateWords()
to count words properly for non-English text (samdark, tol17) - Bug #11038: Fixed handling of intervals of 0 seconds in
yii\i18n\Formatter::asDuration()
(VirtualRJ) - Bug #11040: Check parameter 'recursive' and disable recursive copying with option 'recursive' => false in method BaseFileHelper::copyDirectory (Ni-san)
- Bug #11052: Fixed
HtmlPurifier
configuration sequence (samdark) - Bug #11066:
yii.js
- fixedgetQueryParams()
function to handle URLs with anchors correctly (DrDeath72) - Bug #11088: Fixed bug with column name not being quoted correctly, when a quoted table name or a table name in prefix syntax was used (cebe, edgardmessias, Ni-san)
- Bug #11093: Fixed
yii\db\QueryBuilder::buildAndCondition()
to add query params passed directly byyii\db\Expression
(CedricYii, silverfire) - Bug #11125: Fixed
JSON_ERROR_SYNTAX
forjson_decode(null)
in PHP 7 (fps01) - Bug #11132: Fixed
yii\widgets\FragmentCache
not handling empty content correctly in all cases (kidol) - Bug #11188: Fixed wrong index usage in
CaptchaAction
when callingimagefilledrectangle
(alsopub) - Bug #11196: Fixed VarDumper throws PHP Fatal when dumping
__PHP_Incomplete_Class
(DamianZ) - Bug #11220: NumberValidator now handles objects properly (samdark)
- Bug #11221: Boolean validator generates incorrect error message (azaikin, githubjeka)
- Bug #11223: Fixed returning an empty array when DbManager::getRolesByUser() was called on a user with user id 0 (VirtualRJ)
- Bug #11228:
yii.activeForm.js
- AJAX validation will not be triggered if client side validation failed (silverfire) - Bug #11262: Enabled use of yii2 inside of PHAR packaged console applications (hiqsol)
- Bug #11270: Fixed
BaseActiveRecord::link()
method in order to support closure inindexBy
for relations declaration (iushev) - Bug #11280: Descendants of
yii\console\controllers\BaseMigrateController
, like the one for MongoDB, unable to create new migration (klimov-paul) - Bug #11333: Avoid serializing PHP 7 errors (zuozp8)
- Bug #11425: Fixed namespace conflict with Markdown helper and Console helper (cebe, mdmunir)
- Bug: SQlite querybuilder did not create primary key with bigint for
TYPE_BIGPK
(cebe) - Enh #5469: Add mimetype validation by mask in FileValidator (kirsenn, samdark, silverfire)
- Enh #7177, #10165: Added support for validating datetime and time values using intl short format to
DateValidator
(VirtualRJ, cebe) - Enh #8145, #8139, #10234 #11153:
yii\validators\Validator::$attributes
property now supports!attribute
notation to validate attribute, but do not mark it as safe (mdmunir) - Enh #8148: Implemented ability to add comment on table and column in migration (vaseninm, silverfire)
- Enh #8505:
yii\db\Query
now contains a andFilterCompare() method that allows filtering using operators in the query value (lennartvdd) - Enh #8602:
yii\validators\DateValidator
skip validation fortimestampAttribute
, if it is already in correct format (klimov-paul) - Enh #8639: Improve ActiveRecord to not create new instances of classes when objects are available (cebe)
- Enh #8779: Automatically set enctype form option when using file input field (pana1990, arogachev)
- Enh #9340: Adds
after()
andfirst()
column schema builder modifiers (df2) - Enh #9425:
yii\db\Query::exists()
now uses SQL standardEXISTS()
query via newyii\db\QueryBuilder::selectExists()
method to improving performance in some cases (PowerGamer1) - Enh #9562: Adds
char
datatype to framework (df2) - Enh #9604:
yii\db\BaseActiveRecord
now triggers eventEVENT_AFTER_REFRESH
after a record is refreshed (raoul2000) - Enh #9893:
yii.js
handleAction enhanced to support for data-form attribute, so links can trigger specific forms (SamMousa) - Enh #10309: Extracted
yii\web\UrlManager
rule cache key into$cacheKey
protected property (lordthorzonus) - Enh #10322: ActiveForm now respects formtarget attribute of submit button (AnatolyRugalev)
- Enh #10451: Check of existence of
$_SERVER
in\yii\web\Request
before using it (quantum13) - Enh #10475: Extracted
getUrlFromCache()
andsetRuleToCache()
protected methods fromyii\web\UrlManager::createUrl()
(dmdark) - Enh #10487:
yii\helpers\BaseArrayHelper::index()
got a third parameter$groupBy
to group the input array by the key in one or more dimensions (quantum13, silverfire, samdark) - Enh #10610: Added
BaseUrl::$urlManager
to be able to set URL manager used for creating URLs (samdark) - Enh #10631: Splitted gettng label and rendering cell in
yii\grid\DataColumn::renderHeaderCellContent()
to make code simpler (t-kanstantsin, samdark) - Enh #10710:
yii\helpers\FileHelper::copyDirectory()
is now throwing exception when trying to copy a directory to itself or a subdirectory (wallysalami, cebe, samdark) - Enh #10764:
yii\helpers\Html::tag()
and::beginTag()
return content without any HTML when the$tag
attribute isfalse
ornull
(pana1990) - Enh #10840: Added
yii\console\Controller::optionAliases()
method to support aliases for commands (pana1990) - Enh #10889: Allows unsigned primary key column definitions (df2)
- Enh #10908: Added Dependency Injection for Closure configuration (SamMousa)
- Enh #10910: Fixed Captcha client side validation after image refresh, when controller is under module (silverfire)
- Enh #10921:
__toString()
of column schema builder now adapts to column types (df2) - Enh #10931: Removed hard dependency of
yii\di\Container
onYii::$app
(SamMousa) - Enh #10937:
yii\web\User
will now confirm the request accepts an HTML response before redirecting to the login page. Added optional$checkAcceptHeader
toyii\web\User::loginRequired()
(sammousa) - Enh #10941: Added
yii\helpers\ArrayHelper::isTraversable
, added support for traversable selections for dropdownList, radioList and checkboxList inyii\helpers\Html
(sammousa) - Enh #10941: Added
yii\helpers\ArrayHelper::isTraversable
, added support for traversable selections for dropdownList, radioList and checkboxList inyii\helpers\Html
. - Enh #10954:
yii\db\QueryBuilder
now accepts\Traversable
objects forin
condition (SamMousa, silverfire) - Enh #10967: Simplified Javascript on the exception debug page (SamMousa)
- Enh #10976:
Inflector::transliterate()
now usesstrtr
instead ofstr_replace
(DrDeath72) - Enh #11002:
AttributeBehavior::$skipUpdateOnClean
which determines whether to skip a behavior when the behavior owner has not been modified (Faryshta) - Enh #11056: Allow setting a custom logger configuration for
yii\log\Dispatcher
in configuration (bionoren, cebe) - Enh #11058:
yii\web\User::loginRequired()
now does not set return URL when request method is not GET (dawei101, silverfire) - Enh #11110: Added migrations for DB session (mdmunir)
- Enh #11137: Added weak ETag support to
yii\filters\HttpCache
. It could be turned on via setting$weakEtag
totrue
(particleflux) - Enh #11139:
yii\validators\EachValidator
injects specific attribute value in error message parameters (silverfire) - Enh #11166: migrate command new option
useTablePrefix
(Faryshta) - Enh #11187: migrate command now generates phpdoc for table migrations (Faryshta)
- Enh #11207: migrate command can create foreign keys. (Faryshta)
- Enh #11254: Added ability to attach RBAC rule using class name (mdmunir)
- Enh #11285:
yii\base\Security
enhancements (tom--, samdark)- Avoid reading more bytes than needed from
/dev/urandom
and/dev/random
. - Pefer
/dev/random
to/dev/urandom
when running on FreeBSD. - Better RNG performance.
- Avoid reading more bytes than needed from
- Enh #11336: Allow resettting
$hostInfo
,$scriptUrl
, and$pathInfo
inyii\web\Request
and$baseUrl
, and$hostInfo
inyii\web\UrlManager
tonull
, to make Yii determine the value again (cebe) - Enh: Added
StringHelper::countWords()
that given a string returns number of words in it (samdark) - Chg #9854: Added
ActiveRecordInterface::populateRelation()
to respect the methods called by the implementation (SamMousa) - Chg #10726: Added
yii\rbac\ManagerInterface::canAddChild()
(dkhlystov, samdark) - Chg #10921: Inverts responsibility of database specific column schema builder classes (df2)
- Chg #11071:
yii\helpers\BaseArrayHelper::isIn()
andisTraversable()
since now throw\yii\base\InvalidParamException
instead of\InvalidArgumentException
(nukkumatti) - Chg #11283:
ActiveRecord::unlink()
is not setting FK tonull
before deleting itself anymore (samdark) - Chg: HTMLPurifier dependency updated to
~4.6
(samdark) - New #8920: Added
yii\mutex\PgsqlMutex
which implements mutex "lock" mechanism via PgSQL locks (nineinchnick, CSharpRU)
2.0.7 February 14, 2016
- Bug #6351: Find MySQL FK constraints from
information_schema
tables instead ofSHOW CREATE TABLE
to improve reliability (nineinchnick) - Bug #6363, #8301, #8582, #9566: Fixed data methods and PJAX issues when used together (derekisbusy)
- Bug #6876: Fixed RBAC migration MSSQL cascade problem (thejahweh)
- Bug #7627: Fixed
yii\widgets\ActiveField
to handle inputs validation with changed ID properly (dynasource, cebe) - Bug #7806: Fixed
yii\grid\CheckboxColumn
fixed_all
checkbox column name generation (cebe, silverfire) - Bug #7964: Fixed i18n message sources to load fallback messages in a smarter way (silverfire)
- Bug #8348: Fixed
yii\helpers\BaseArrayHelper
fixed PHP Fatal Error: Nesting level too deep - recursive dependency? (andrewnester) - Bug #8466: Fixed
yii\validators\FileValidator
to display error fortooBig
andtooSmall
with formatted unit (silverfire) - Bug #8573: Fixed incorrect data type mapping for NUMBER to INTEGER or DECIMAL in Oracle (vbelogai)
- Bug #8723: Fixed
yii\helpers\VarDumper::export()
unable to export circle referenced objects withClosure
(klimov-paul) - Bug #9061: Fixed
yii.activeForm.js
: input onBlur event forces field validation (githubjeka) - Bug #9108: Negative number resulted in no formatting when using
Formatter::asSize()
orFormatter::asShortSize
(nxnx, cebe) - Bug #9288: Fixed
FileHelper::createDirectory
directory creation to be concurrency friendly (dynasource) - Bug #9314: Fixed
yii\rbac\DbManager::getPermissionsByUser()
not returning permissions directly assigned to a user (hesna) - Bug #9323: Fixed
yii\console\controllers\MessageController
not using database connection specified in config (raccoon69, samdark) - Bug #9333: Fixed
yii\web\AssetManager
to publish bundles using symlink with nested directories inhash
(silverfire) - Bug #9415: Fixed regression in 2.0.6 where on Oracle DB
PDO::ATTR_CASE = PDO::CASE_LOWER
did not work anymore (cebe) - Bug #9442: Fixed
yii\db\Migration::renameTable()
caused fatal error when using SQLite driver (fetus-hina) - Bug #9452: Fixed
yii\db\Query::where()
does not add params from directly passedyii\db\Expression
(klimov-paul) - Bug #9454: Fixed MSSQL MARS wasn't working with transactions (daliran)
- Bug #9583: Server response on invalid JSON request included a wrong message about "Internal Server Error" with status 500 (cebe)
- Bug #9591: Fixed
yii.validation.js
code so it is compressable by YUICompressor (samdark, hofrob) - Bug #9596: Fixed
\yii\web\UrlManager::createAbsoluteUrl(['site/index', '#' => 'testHash'])
losing hash (alchimik, samdark) - Bug #9670: Fixed PJAX redirect in IE.
yii\web\Response::redirect()
- added check forX-Ie-Redirect-Compatibility
header (silverfire) - Bug #9678:
I18N::format()
wasn't able to handle named placeholder in "selectordinal" (samdark) - Bug #9681:
Json::encode()
was erroring under CYGWIN (samdark) - Bug #9689: Hidden input on
Html::activeFileInput()
had the wrong name if a name was explicitly given (graphcon, cebe) - Bug #9707: Fixed Memcache duration which exceeds 30 days (vernik91)
- Bug #9714: Fixed
yii\rbac\PhpManager::updateItem()
unable to save users assignments (rezident1307) - Bug #9754: Fixed
yii\web\Request
error when path info is empty (dynasource) - Bug #9790: Fixed
yii\db\sqlite\QueryBuilder
to generate proper SQL for UNION (romeOz, samdark) - Bug #9791: Fixed endless loop on file creation for non-existing device letters on windows (lukos, cebe)
- Bug #9874: Fixed outputting exception stacktrace in non-debug mode when
Response::FORMAT_RAW
is used (nainoon) - Bug #9883: Passing a single
yii\db\Expression
toQuery::select()
or::addSelect()
was not handled correctly in all cases (cebe) - Bug #9911: Fixed
yii\helpers\BaseStringHelper::explode()
code so it doesn't remove items equal to 0 whenskip_empty
is true (silverfire, kidol) - Bug #9924: Fixed
yii.js
handleAction corrupted parameter values containing quote (") character (silverfire) - Bug #9984: Fixed wrong captcha color in case Imagick is used (DrDeath72)
- Bug #9999: Fixed
yii\web\UrlRule
to allow route parameter names with-
,_
,.
characters (silverfire) - Bug #10029: Fixed MaskedInput not working with PJAX (martrix78, samdark)
- Bug #10052: Fixed
yii\i18n\Formatter
to work with huge numbers on 32-bit arch (necrox87, silverfire) - Bug #10101: Fixed assignments saving on role removing in
\yii\rbac\PhpManager
(rezident1307) - Bug #10142: Fixed
yii\validators\EmailValidator
to check the length of email properly (silverfire) - Bug #10218: Fixed Flash messages not showing after logging out a user (andrewnester)
- Bug #10263: Fixed
yii\validators\UniqueValidator
to work properly when model is not instance oftargetClass
(bupy7, githubjeka, silverfire) - Bug #10278: Fixed
yii\helpers\BaseJson
support \SimpleXMLElement data (SilverFire, LAV45) - Bug #10302: Fixed JS function
yii.getQueryParams
, which parsed array variables incorrectly (servocoder, silverfire) - Bug #10363: Fixed fallback float and integer formatting (AnatolyRugalev, silverfire)
- Bug #10385: Fixed
yii\validators\CaptchaValidator
passed incorrect hashKey to JS validator whencaptchaAction
begins with/
(silverfire) - Bug #10467: Fixed
yii\di\Instance::ensure()
to work with minimum settings (LAV45) - Bug #10541: Fixed division by zero issue in
Console
helper progress bar (youmad) - Bug #10580: Fixed
yii\grid\GridView::guessColumns()
to work with numeric column names (silverfire) - Bug #10625: Fixed
activeForm.js
- when submit doesn't reload page, submit button value simulation with hidden input did not work (andrewnester) - Bug #10629: Fixed
yii\helpers\BaseStringHelper
- BaseStringHelper::truncateHtml adds suffix regardless of the string length (andrewnester) - Bug #10692: Fixed default value extraction in PostgreSQL Schema for null values (wallysalami, gabrielhomsi)
- Bug #10739: Fixed
yii\web\UrlManager::parseRequest()
to treat request URL with more than one slash at the end as invalid (andrewnester) - Bug #10751: Fixed
yii\validators\UrlValidator
pattern to improve matching (silverfire) - Bug #10760:
yii\widgets\DetailView::normalizeAttributes()
fixed for arrayable models (boehsermoe) - Bug #10825: Fixed
yii\validators\EachValidator
does not respectskipOnEmpty
rule parameter (klimov-paul) - Bug: Fixed generation of canonical URLs for
ViewAction
pages (samdark) - Bug: Fixed
mb_*
functions calls to useUTF-8
orYii::$app->charset
(silverfire) - Enh #2377: Allow specifying a table alias when joining relations via
joinWith()
(cebe, nainoon) - Enh #3506: Added
yii\validators\IpValidator
to perform validation of IP addresses and subnets (SilverFire, samdark) - Enh #4972: Added
yii\db\ActiveQuery::alias()
to allow specifying a table alias for the model table without having to know the name (cebe, stepanselyuk) - Enh #5146: Added
yii\i18n\Formatter::asDuration()
method (nineinchnick, SilverFire) - Enh #5902:
yii\widgets\Pjax::options
now support special optiontag
to specify tag of container (Alex-Code) - Enh #6162, #9198: Added parameter visibleButtons for
yii\grid\ActionColumn
(fornit1917, silverfire) - Enh #7341: Client validation now skips disabled inputs (SamMousa)
- Enh #7405: Added
yii\filters\auth\AuthMethod::optional
for optional authentification in all child classes (SilverFire) - Enh #7566: Improved
\yii\validators\CompareValidator
default messages (slinstj) - Enh #7581: Added ability to specify range using anonymous function in
RangeValidator
(RomeroMsk) - Enh #7674: Added
yii\db\Connection::commandClass
to configure a command class that will be used by the connection (sammousa, silverfire, cebe) - Enh #8284: Added
\yii\captcha\CaptchaAction::$imageLibrary
property allowing to set image rendering library (AnatolyRugalev) - Enh #8329: Added support of options for
message
console command (vchenin) - Enh #8613:
yii\widgets\FragmentCache
will not store empty content anymore which fixes some problems related toyii\filters\PageCache
(kidol) - Enh #8649: Added total applied migrations to final report (vernik91)
- Enh #8687: Added support for non-gregorian calendars, e.g. persian, taiwan, islamic to
yii\i18n\Formatter
(cebe, z-avanes, hooman-pro) - Enh #8824: Allow passing a
yii\db\Expression
toQuery::groupBy()
(cebe) - Enh #8995:
yii\validators\FileValidator::maxFiles
can be set to0
to allow unlimited count of files (PowerGamer1, silverfire) - Enh #9282: Improved JSON error handling to support PHP 5.5 error codes (freezy-sk)
- Enh #9337: Added
yii\db\ColumnSchemaBuilder::defaultExpression()
to support DB Expression as default value (kotchuprik) - Enh #9412:
yii\web\Response::sendHeaders()
does now set the status header last which negates certain magic PHP behavior regarding theheader()
function (nd4c, kidol) - Enh #9443: Added
unsigned()
toColumnSchemaBuilder
(samdark) - Enh #9465: ./yii migrate/create now generates code based on migration name and --fields (pana1990)
- Enh #9573: Added
yii\rbac\ManagerInterface::getUserIdsByRole()
and implementations (samdark) - Enh #9635: Added default CSS class for
\yii\grid\ActionColumn
header (arogachev, dynasource) - Enh #9643: Added migrations for DB cache (mdmunir)
- Enh #9711: Added
yii\widgets\LinkPager::$pageCssClass
that allows to set default page class (ShNURoK42) - Enh #9733: Added Unprocessable Entity HTTP Exception (janfrs)
- Enh #9762: Added
JsonResponseFormatter::$encodeOptions
and::$prettyPrint
for better JSON output formatting (cebe) - Enh #9783: jQuery inputmask dependency updated to
~3.2.2
(samdark) - Enh #9785: Added ability to invoke callback with dependency resolution to DI container (mdmunir, SamMousa)
- Enh #9869: Allow path alias for SQLite database files in DSN config (ASlatius)
- Enh #9901: Default
Cache.SerializerPermissions
configuration option forHTMLPurifier
is set to0775
(klimov-paul) - Enh #10056: Allowed any callable to be passed to
ActionColumn::$urlCreator
(freezy-sk) - Enh #10061:
yii\helpers\BaseInflector::transliterate()
is now public. Introduced different levels of transliteration strictness (silverfire) - Enh #10078: Added
csrf
option toHtml::beginForm()
to allow disabling the hidden csrf field generation (machour) - Enh #10086:
yii\base\Controller::viewPath
is now configurable (Sibilino) - Enh #10098: Changed
yii.confirm
context to the event's target DOM element which is triggered by clickable or changeable elements (lichunqiang) - Enh #10108: Added support for events in interfaces (omnilight)
- Enh #10118: Allow easy extension of slug generation in
yii\behaviors\SluggableBehavior
(cebe, hesna, silverfire) - Enh #10149: Made
yii\db\Connection
serializable (Sam Mousa) - Enh #10154: Implemented support of traversable objects in
RangeValidator::ranges
, addedArrayHelper::isIn()
andArrayHelper::isSubset()
(Sam Mousa) - Enh #10158: Added the possibility to specify CSS and Javascript options per file in
\yii\web\AssetBundle
(machour) - Enh #10170:
Yii::powered()
now usesYii::t()
(SamMousa) - Enh #10217: Support for selecting multiple filter values with the same name was added to
yii.gridView.js
(omnilight, silverfire) - Enh #10255: Added Yii warning to session initialization if session was already started (AnatolyRugalev)
- Enh #10264: Generation of HTML tags in Yii's JavaScript now uses jQuery style (silverfire)
- Enh #10267:
yii.js
- added original event passing topjaxOptions
for links withdata-method
anddata-pjax
(servocoder, silverfire) - Enh #10319:
yii\helpers\VarDumper::dump()
now respects PHP magic method__debugInfo()
(klimov-paul) - Enh #10359: Support wildcard category name in
yii/console/controllers/MessageController
(rmrevin) - Enh #10390: Added ability to disable outer tag for
\yii\helpers\BaseHtml::radiolist()
,::checkboxList()
(TianJinRong, githubjeka, silverfire) - Enh #10535: Allow passing a
yii\db\Expression
toQuery::orderBy()
andQuery::groupBy()
(andrewnester, cebe) - Enh #10545:
yii\web\XMLResponseFormatter
changed to format models in a proper way (andrewnester) - Enh #10783: Added migration and unit-tests for
yii\i18n\DbMessageSource
(silverfire) - Enh #10797: Cleaned up requirements checker CSS (muhammadcahya)
- Enh: Added last resort measure for
FileHelper::removeDirectory()
fail to unlink symlinks under Windows (samdark) - Enh:
AttributeBehavior::getValue()
now respects the callable in array format (silverfire) - Chg #6419: Added
yii\web\ErrorHandler::displayVars
make list of displayed vars customizable.$_ENV
and$_SERVER
are not displayed by default anymore (silverfire) - Chg #9369:
Yii::$app->user->can()
now returnsfalse
instead of erroring in caseauthManager
component is not configured (creocoder) - Chg #9411:
DetailView
now automatically sets container tag ID in case it's not specified (samdark) - Chg #9528: Traversable objects are now formatted as arrays in
yii\web\XmlResponseFormatter
to support SPL objects and Generators (MaXL-ru) - Chg #9878, #9879, #9880: Make
\base\Security
userandom_bytes()
, LibreSSL, mcrypt, limit OpenSSL to Windows, and to preferpassword_hash()
overcrypt()
(tom--) - Chg #9953:
TimestampBehavior::getValue()
changed to make value processing consistent withAttributeBehavior::getValue()
(silverfire) - Chg #10296: Methods mset, mget and madd of
\yii\caching\Cache
have been marked as deprecated (trejder, githubjeka) - Chg: ApcCache is now able to handle PHP 7 APCu (samdark)
- Chg:
BlameableBehavior::getValue()
changed to make value processing consistent withAttributeBehavior::getValue()
(silverfire) - New #10083: Added wrapper for PHP webserver (samdark)
- New: Added new requirement: ICU Data version >= 49.1 (SilverFire)
2.0.6 August 05, 2015
- Bug #4763: Fixed display issue with overlapping call stack item on exception display page (cebe)
- Bug #7305: Logging of Exception objects resulted in failure of the logger i.e. no logs being written (cebe)
- Bug #7374: Use proper INSERT syntax with default values when no values are specified (nineinchnick)
- Bug #7707: Client-side
trim
validator now passes the trimmed value to subsequent validators (nkovacs) - Bug #7764:
\yii\helpers\ArrayHelper::toArray()
wasn't passing$recursive
toArrayable::toArray
(brandonkelly) - Bug #8161: Fixed active form
data-method
submit bug when client validation is used (vbelogai) - Bug #8322:
yii\behaviors\TimestampBehavior::touch()
now throws an exception if owner is new record (klimov-paul) - Bug #8451:
yii\i18n\Formatter
did not allow negative unix timestamps as input for date formatting (cebe) - Bug #8483: Sequence name in
Schema::getLastInsertId()
was not properly quoted (nineinchnick) - Bug #8506: Cleaning of output buffer in
Widget::run()
conflicts withPjax
widget which did the cleanup itself (cebe, joester89) - Bug #8544: Fixed
yii\db\ActiveRecord
does not update attribute specified atoptimisticLock()
after save (klimov-paul) - Bug #8549: Fixed
yii\caching\FileCache
doesn't lock cache files when reading (iworker) - Bug #8551:
yii\pgsql\QueryBuilder::batchInsert()
may cause "undefined index" error (arkhamvm) - Bug #8585: Fixed
yii\helpers\Html::activeTextarea()
does not allow value overriding via options (klimov-paul) - Bug #8592: Fixed
yii\db\Command::getRawSql()
unable to parse params specified without colon (':') (klimov-paul) - Bug #8593: Fixed
yii\db\ActiveQuery
produces incorrect SQL for aggregations, whensql
field is set (klimov-paul) - Bug #8595: Fixed
yii\rbac\DbManager::checkAccessFromCache()
to check against auth items loaded in cache recursively (achretien, qiangxue) - Bug #8606: Fixed
yii\web\Response::xSendFile()
does not reset format (vyants) - Bug #8627: Fixed
yii\db\Migration
produces incorrect results due to table schema caching (klimov-paul) - Bug #8661: Fixed
yii.activeForm.js
scrolling to top (nkovacs) - Bug #8684: Formatter ignored explicit decimal number settings when a default value is configured (leandrogehlen, cebe)
- Bug #8772: ActiveQuery failed removing duplicate records after join when the resultset did not contain the pk values e.g. after grouping (cebe)
- Bug #8844: Added a workaround for an oracle bug when fetching information about table constraints and filtering by
CONSTRAINT_TYPE
(nidgetgod) - Bug #8900: Fixed determining active menu item with url-alias in route
\yii\widgets\Menu::isItemActive()
(demi) - Bug #9006: Fixed bit column always returning true using certain version of PDO MySQL (stratoss, RusAlex, mj4444ru, samdark)
- Bug #9046: Fixed problem with endless error loop when an error occurred after sending a stream or file download response to the user (cebe)
- Bug #9059: Fixed PHP Notice in error handler view (dynasource, andrewnester, samdark)
- Bug #9063: Workaround for MySQL losing table case when adding index (sebathi)
- Bug #9076: Fixed
yii\filters\PageCache
not using the configured duration and dependency when caching the response data (kidol) - Bug #9091:
UrlManager::createUrl()
did not create correct url when defaults were used, internal cache is now skipped in certain situations (cebe) - Bug #9127, #9128: Fixed MSSQL
QueryBuilder::renameColumn()
andQueryBuilder::renameTable()
escaping (sitawit) - Bug #9161: Fixed
yii\web\Request
ignorequeryParams
when resolve request (zetamen) - Bug: Fixed string comparison in
BaseActiveRecord::unlink()
which may result in wrong comparison result for hash valued primary keys starting with0e
(cebe) - Bug: Pass correct action name to
yii\console\Controller::options()
when default action was requested (cebe) - Bug: Automatic garbage collection in
yii\caching\FileCache
was not triggered (kidol) - Bug: Fixed missing stacktrace items on PHP syntax errors of "unexpected end of file" type (samdark)
- Enh #3335: Implemented
ColumnSchemaBuilder
(pana1990, vaseninm, samdark, cebe) - Enh #5991: Added
updateMessages()
toyii.activeForm.js
to support manually updating ActiveForm messages (nkovacs) - Enh #6043: Specification for 'class' and 'style' in array format added to
yii\helpers\Html
(klimov-paul) - Enh #6853: Console application will now register PHP constants for
STDIN
,STDOUT
, andSTDERR
itself if they are not defined (cebe) - Enh #7169:
yii\widgets\ActiveField
now uses corresponding methods for default parts rendering (klimov-paul) - Enh #7259: Added
errorAttributes
parameter to ActiveFormafterValidate
event. Made scrolling to first error optional (nkovacs) - Enh #8070:
yii\console\controllers\MessageController
now sorts created messages, even if there is no new one, while saving to PHP file (klimov-paul) - Enh #8286:
yii\console\controllers\MessageController
improved allowing extraction of nested translator calls (klimov-paul) - Enh #8373: Check also
post_max_size
parameter inyii\validators\FileValidator::getSizeLimit()
(maxxer) - Enh #8415:
yii\helpers\Html
allows correct rendering of conditional comments containing!IE
(salaros, klimov-paul) - Enh #8444: Added
yii\widgets\LinkPager::$linkOptions
to allow configuring HTML attributes of thea
tags (zinzinday) - Enh #8486: Added support to automatically set the
maxlength
attribute forHtml::activeTextArea()
andHtml::activePassword()
(klimov-paul) - Enh #8566: Added support for 'only' and 'except' options for
yii\web\AssetManager::publish()
(klimov-paul) - Enh #8574: Added
yii\console\controllers\MessageController
support .pot file creation (pgaultier) - Enh #8625: Added
markUnused
option toyii\console\controllers\MessageController
(marius7383) - Enh #8670: Added support for saving extra fields in session table for
yii\web\DbSession
(klimov-paul) - Enh #8671: Extracted
yii\helpers\Html::escapeJsRegularExpression()
method fromyii\validators\RegularExpressionValidator
(silverfire, klimov-paul, samdark, qiangxue) - Enh #8903: PostgreSQL
QueryBuilder::createIndex()
can now specify the index method to use (LAV45) - Enh #8933: Yii is now able to properly handle HHVM fatal errors (dieend, samdark)
- Enh #9011: Allow
yii\widgets\MaskedInput
to produce an input tag of a custom type (TriAnMan) - Enh #9038: Write warning to log in case
FileCache
fails to write into file (foccy) - Enh #9072:
yii\web\ErrorAction
displays 404 error instead of blank page on direct access (klimov-paul) - Enh #9149: Print directory migrationPath in a
yii migrate
command error. (RusAlex) - Enh #9177: Added password hash cost setting to Security component (freezy-sk)
- Enh #9239: Better handling of
Json
errors (grzegorzkurtyka, samdark) - Enh #9246: Added
yii\web\UrlRule::getParamRules()
(df2) - Enh #9249: Added
hashCallback
inyii\web\AssetManager
to allow custom hash generation for asset directory (petrabarus) - Enh #9263: Avoid extra DB query in RBAC DbManager in case auth item name is empty (samdark)
- Enh #9268: Improved display of boolean parameters in logged SQL queries (arkhamvm, samdark)
- Enh: Improved Console helper progress bar ETA time estimation, updated only once per second to avoid flapping (cebe)
- Chg #6354:
ErrorHandler::logException()
will now log the whole exception object instead of only its string representation (cebe) - Chg #8556: Extracted
yii\web\User::getAuthManager()
method (samdark) - Chg #9181:
yii\helpers\BaseStringHelper::truncateHtml()
is now usingruntime
directory forHTMLPurifier
cache (webdevsega)
2.0.5 July 11, 2015
- Bug #9070 (CVE-2015-5467): Fixed
ViewAction::resolveViewName()
not to accept/../
and/./
(thejahweh, samdark)
2.0.4 May 10, 2015
- Bug #5042: Use RETURNING for inserts for pgsql and oci to support PKs with a custom default value expression (nineinchnick, klimov-paul)
- Bug #6234: Fixed wrong table schema information for MSSQL when using multiple schemas (nineinchnick)
- Bug #6642: Fixed the bug that using confirmation dialog via
data-confirm
in anActiveForm
may cause the dialog to appear twice (pana1990, qiangxue) - Bug #6871: Fixed the bug that using defaults and hostnames in URL rules may cause an out-of-range index issue (qiangxue)
- Bug #7036: Fixed
yii\helpers\Html::dropDownList()
overrides label specified at 'groups' option (aktec, klimov-paul) - Bug #7473: Fixed
yii\console\controllers\AssetController
does not create missing folders for the target bundles (schmunk42, klimov-paul) - Bug #7894: Fixed incorrect URL config processing at
yii\web\Application::handleRequest()
andyii\widgets\Menu::items
if route element is not a first one (nkovacs, klimov-paul) - Bug #7529: Fixed
yii\web\Response::sendContentAsFile()
that was broken in 2.0.3 (samdark) - Bug #7603: Fixed escape characters in
FormatConverter
to work with unicode characters (maddoger, cebe) - Bug #7656: Fixed
yii\rbac\DbManager::getRolesByUser()
andyii\rbac\PhpManager::getRolesByUser()
to return roles only (samdark) - Bug #7757: Fix fetching tables schema for oci and mysql when PDO::ATTR_CASE is set (nineinchnick)
- Bug #7761: Fixed formatting one digit month in date formatter using ICU format
L
(nkovacs) - Bug #7775: Added more strict check on controller IDs when they are being used to create controller instances on Windows (Bhoft, qiangxue)
- Bug #7831: Add order when fetching database table names and constraints (nineinchnick)
- Bug #7846: Fixed
yii\base\Model
does not recognize scenario declared by rules using 'except' (klimov-paul) - Bug #7847:
yii\db\ColumnSchema
was typecasting numerics to strings with incorrect decimal separator for some locales (nineinchnick) - Bug #7861: Fixed
yii\helpers\VarDumper::export()
fails to export object containing\Closure
(klimov-paul) - Bug #7867: Fixed findUniqueIndexes not to perform any processing on unique index on function for pgsql (nineinchnick)
- Bug #7868: Fixed fetching columns definition and composite foreign keys for oci (nineinchnick)
- Bug #7868: Removed column's autoIncrement detection from oci (nineinchnick)
- Bug #7868: Fixed creating raw sql (for logging) by skipping object and resource params (nineinchnick)
- Bug #7868: Fixed Schema::getLastInsertID() by quoting sequence name (nineinchnick)
- Bug #7957: Removed extra
parseFloat()
call for thecompare
js validator (CthulhuDen) - Bug #8012: Fixed fetching multiple relations between two tables for pgsql (nineinchnick)
- Bug #8014: Fixed setting incorrect form "action" property after submitting a form using a link with "data-method" and containing "action" among "data-params" (samdark)
- Bug #8032:
yii\rbac\PhpManager::updateItem()
was unable to rename item updated (ChristopheBrun, samdark) - Bug #8036: Fixed
yii\log\Logger
unable to export session id (klimov-paul) - Bug #8068: Fixed
yii\db\Query::count()
fails for query containing 'having' without 'group by' (klimov-paul) - Bug #8073: Fixed
yii\data\ArrayDataProvider::getKeys()
return wrong whenyii\data\ArrayDataProvider::$allModels
contain integer key (mdmunir, klimov-paul) - Bug #8082: Fixed
yii\db\BaseActiveRecord::getAttributeLabel()
return wrong label for related attribute, if several relations in chain share same name (klimov-paul) - Bug #8149: Fixed
yii\db\BaseActiveRecord::updateCounters()
fails for new record saved with counter attribute not set (klimov-paul) - Bug #8158: Avoid exception when detecting console screen size fails on windows (EliasZ)
- Bug #8165: Fixed
yii\db\ActiveRelationTrait::populateRelation()
fails whenlink
refers to string convertable object attribute, like\MongoId
(klimov-paul) - Bug #8231: Configuration of GridView and DetailView where not preserved when used multiple times (cebe, idMolotov)
- Bug #8273: Fixed
yii\widgets\FragmentCache
whenenabled
is false (nkovacs) - Bug #8291: Fixed numeric keys in $_GET transformed to 0-based, if 'pretty URL' enabled (quantum13, klimov-paul)
- Bug #5053: DateValidator is now more robust against different timezone settings (cebe)
- Bug (CVE-2015-3397): Added
Json::htmlEncode()
to support safer JSON data encoding in HTML code (samdark, Wojciech Janusz, Tomasz Tokarski) - Enh #1468: Added ability to specify hints for model attributes via
attributeHints()
method (klimov-paul) - Enh #3376: Added
yii\validators\EachValidator
, which allows validation of the array attributes (klimov-paul) - Enh #5053: Added possibility to specify a format and time zone for the
timestampAttribute
of date validator making it fully usable for validating complete timestamps (cebe) - Enh #6442: Improved error message on
FileHelper::createDirectory()
to include the path name of the directory (cebe) - Enh #6895: Added
ignoreCategories
config option for message command to ignore categories specified (samdark) - Enh #6975: Pressing arrows while focused in inputs of Active Form with
validateOnType
enabled no longer triggers validation (slinstj) - Enh #7409: Allow
yii\filters\auth\CompositeAuth::authMethods
to take authentication objects (fernandezekiel, qiangxue) - Enh #7443: Allow specification of the
$key
as an array atyii\helpers\ArrayHelper::getValue()
(Alex-Code) - Enh #7488: Added
StringHelper::explode
to perform explode with trimming and skipping of empty elements (SilverFire, nineinchnick, creocoder, samdark) - Enh #7514: Added min/max validation to DateValidator (nkovacs)
- Enh #7515: Added support to use
indexBy()
together withcolumn()
in query builder (qiangxue) - Enh #7530: Improved default values for
yii\data\Sort
link labels in aListView
when used with anActiveDataProvider
(cebe) - Enh #7539:
yii\console\controllers\AssetController
provides dependency trace in case bundle circular dependency detected (klimov-paul) - Enh #7562:
yii help
now lists all sub-commands by default (callmez) - Enh #7571: HTTP status 500 and "An internal server error occurred." are now returned in case there was an exception in layout and
YII_DEBUG
is false (samdark) - Enh #7636:
yii\web\Session::getHasSessionId()
uses a more lenient way to check if session ID is provided in URL (robsch) - Enh #7637: Allow
yii\web\Request::validateCsrfToken()
to validate a manually provided token (miraage, qiangxue) - Enh #7808: Adjusted Masked input to correctly generate the hash variable to store the plugin options (wbraganca)
- Enh #7833: Support (materialized) views and foreign tables along normal tables when fetching table schema (nineinchnick)
- Enh #7850: Added
yii\filters\PageCache::cacheCookies
andcacheHeaders
to allow selectively caching cookies and HTTP headers (qiangxue) - Enh #7867: Implemented findUniqueIndexes for oci and mssql (nineinchnick)
- Enh #7912: Added
aria-label
to ActionColumn buttons (LAV45, samdark) - Enh #7915: Added
yii\i18n\Formatter::$numberFormatterSymbols
to allow setting custom symbols for the internally used IntlNumberFormatter, e.g. currency signs (cebe) - Enh #7918:
yii\widgets\Pjax
got ability to avoid registering link/form handler via settingfalse
to$linkSelector
/$formSelector
(usualdesigner, Alex-Code, samdark) - Enh #7973: Added
Schema::getSchemaNames
method (nineinchnick) - Enh #8027: Added support for using sub queries in simple Query WHERE conditions (cebe)
- Enh #8055:
yii\rest\UrlRule::extraPatterns
should take precedence overpatterns
(Agrumas) - Enh #8064: Added ability to remove containing menu tag by setting
yii\widgets\Menu::$options['tag']
tofalse
(kirsenn, samdark) - Enh #8078: 'links' and 'meta' envelope names are now configurable at
yii\rest\Serializer
(arturf) - Enh #8171: Allow the user to enforce the fileSize to allow sending files which are not seekable. Needed when using S3 Stream Wrapper (pgaultier)
- Enh #8179: Added parameter to define whether the comparison of
yii\db\BaseActiveRecord::isAttributeChanged()
method will be made as identical (thiagotalma) - Enh #8194: Caching of the matched rules added to
yii\web\UrlManager::createUrl()
(laszlovl, klimov-paul) - Enh #8268: Allow
QueryBuilder
to recognize more variations oflimit
andoffset
values (tino415, qiangxue) - Enh:
yii\i18n\Formatter
now shows more information about errors which occured when formatting values (cebe) - Enh: Added
yii\helper\Console::wrapText()
method to wrap indented text by console window width and used it inyii help
command (cebe) - Enh: Implement batchInsert for oci (nineinchnick)
- Enh: Detecting IntegrityException for oci (nineinchnick)
- Enh:
yii\widgets\LinkPager::$firstPageLabel
andyii\widgets\LinkPager::$lastPageLabel
now could be set to true in order to use page number as label (samdark) - Chg #7924: Migrations in history are now ordered by time applied allowing to roll back in reverse order no matter how these were applied (samdark)
- Chg: Updated dependency to
cebe/markdown
to version1.1.x
(cebe)
2.0.3 March 01, 2015
- Bug #5457:
yii\web\Cors
should handleAccess-Control-Request-Headers
in a case-insensitive manner (qiangxue) - Bug #6553: DateValidator returned valid for date "2012-12-12foo" with intl extension enabled (gajahlemu)
- Bug #6919: Fixed wrong namespaces under advanced application's TestCase classes (ivokund)
- Bug #6940:
yii\web\Response::sendContentAsFile()
may not send correctcontent-length
header (sadgnome) - Bug #6969:
yii\helpers\ArrayHelper::htmlEncode()
andhtmlDecode()
should not remove non-string data (qiangxue) - Bug #7037:
yii\console\controllers\AssetController
now correctly handles relative image URLs if source and target CSS are under same directory (klimov-paul) - Bug #7055: composite IN condition was not generated correctly for certain DBMS (nineinchnick)
- Bug #7074:
yii\data\ArrayDataProvider
did not correctly handle the casePagination::pageSize = 0
(kirsenn, qiangxue) - Bug #7172: Fixed problem with EmailValidator which did not extract domain correctly for DNS check (nbogol)
- Bug #7209: Html::getInputId() now also replaces
.
with-
to ensure a valid ID is generated (omnilight) - Bug #7211: Query caching should properly deal with the case when query result is false (qiangxue)
- Bug #7218:
yii\captcha\CaptchaAction
should send response in JSON format (InteLigent, qiangxue) - Bug #7226:
yii\web\Request::getEtag()
should strip off-gzip
which may be added by Apache (mcd-php) - Bug #7227: Query builder should respect column alias setting when
yii\db\Expression
is being selected (mdmunir, qiangxue) - Bug #7271:
ActiveRecord::populateRecord()
should be called in late binding approach (jlorente) - Bug #7258: Response was sending HTML content type when formatter was set to JSON or XML, nulls were handled wrong (slavcodev, samdark)
- Bug #7358: Fix trimming PHPDoc prefix with TAB indent in
yii\console\Controller::parseDocCommentSummary()
(gugglegum) - Bug #7384: Fix precision loss in log timestamps when using
yii\log\DBTarget
(samdark) - Bug #7425:
yii\widgets\ActiveField::radio()
should not generate the label twice (justinvoelker) - Enh #3168: Improved the performance of
yii\rbac\DbManager::checkAccess()
by caching mechanism (qiangxue) - Enh #3723:
yii\filters\PageCache
now supports caching response headers as well as non-HTML response content (qiangxue) - Enh #4710: Added
yii\web\AssetManager::appendTimestamp
to support cache busting for assets (qiangxue) - Enh #5663: Added support for using
data-params
to specify additional form data to be submitted via thedata-method
approach (usualdesigner, qiangxue) - Enh #5681: Allow customization of Menu::submenuTemplate in menu items (RobertBoes, otsec)
- Enh #6106: Added ability to specify
encode
for each item ofyii\widgets\Breadcrumbs
(samdark, aleksanderd) - Enh #6361: Added
validateAttribute()
toyii.activeForm.js
to support manually triggering data validation of an input (Alex-Code, qiang) - Enh #6493: Added support for the
Access-Control-Expose-Headers
header byyii\filters\Cors
(usualdesigner) - Enh #6697: Added
yii\helpers\Url::current()
method that allows adding or removing parameters from current URL (samdark, callmez) - Enh #6852: Added
yii\helpers\BaseHtmlPurifier::helpers()
in order to be able to configureHtmlPurifier
helper globally via subclassing (Alex-Code) - Enh #6882: Added
yii\web\ErrorHandler::getTypeUrl()
in order to allow providing custom types/classes/methods URLs for subclasses (brandonkelly) - Enh #6883:
yii\base\ErrorHandler::logException()
is now public (samdark) - Enh #6896: Added
yii\log\FileTarget::$enableRotation
to allow disabling log rotation when external tools are configured for this (cebe) - Enh #7008: Removed extra white space in GridView filter cell (uran1980)
- Enh #7051: Added support for preventing swapping values between different cookies (pavimus, qiangxue)
- Enh #7150: FormatConverter for date formats now supports single quote escaping (brandonkelly)
- Enh #7255: Added support to allow widgets that use text input to specify input types (qiangxue)
- Enh #7269:
yii\console\controllers\BaseMigrateController
now throws exception if directory specified doesn't exist and action isn'tcreate
(lynicidn, samdark) - Enh #7301: Added checking for ICU version in requirements warning about plural problems when it is lower than 49 (sidtj)
- Enh #7332: Added ability to remove
yii\widgets\Menu
container tag by settingoptions['tag']
tofalse
(dynasource, samdark) - Enh #7350: Added
yii\helpers\Html::$dataAttributes
to support customizing data attributes (Faryshta, qiangxue) - Enh #7357: Refactored
yii\db\ColumnSchema
by addingtypecast()
method to decouplephpTypecast()
fromdbTypecast()
(mcd-php, qiangxue) - Enh #7361: The
trim
validator now works on the client side too (qiangxue) - Enh #7440: Added support to automatically set the
maxlength
attribute forHtml::activeTextInput()
(llfm) - Enh #7446: Added
Schema::TYPE_DOUBLE
to represent ANSI SQL Double Precision type (samdark) - Enh #7449: Added
encode
option to allow not encoding select options forHtml::dropDownList()
andHtml::listBox()
(yapi68, qiangxue) - Enh: Added support to
yii\di\Container
to instantiate and configure an object that implementsyii\base\Configurable
(qiangxue) - Chg #5690: adjusted paths in message config generated by
yii message/config
to reflect directory structure better (mikehaertl, samdark) - Chg #6661: Hyperlinks that are enclosed within an exist form will use the same form for submission if they specify both of the
href
anddata-method
attributes (qiangxue) - Chg #7094: Console confirmation must be answered correctly. To return
true
:y
oryes
. To returnfalse
:n
orno
. Any other input the question will be asked again (thiagotalma) - Chg #7130: Changed the signature of
ActiveRecord::findByCondition()
to simplify the implementation and usage (Faryshta) - Chg #7215: Uses OpenSSL crypto lib instead of Mcrypt. Added testing of encrypted data compatibility, both backward and forward (tom--)
Apidoc Extension (yii2-apidoc)
- no changes in this release.
Authclient Extension (yii2-authclient)
- Enh #6892: Default value of
yii\authclient\clients\Twitter::$authUrl
changed to 'authenticate', allowing usage of previous logged user without request an access (kotchuprik)
Bootstrap Extension (yii2-bootstrap)
- no changes in this release.
Codeception Extension (yii2-codeception)
- Bug #6978: DI Container is not reset when destroying application in functional tests (ivokund)
Composer Extension (yii2-composer)
- no changes in this release.
Debug Extension (yii2-debug)
- Bug #6903: Fixed display issue with phpinfo() table (kalayda, cebe)
- Bug #7222: Debug toolbar wasn't displayed properly in rtl pages (mohammadhosain, johonunu, samdark)
- Enh #6890: Added ability to filter by query type (pana1990)
Elasticsearch Extension (yii2-elasticsearch)
- no changes in this release.
Faker Extension (yii2-faker)
- no changes in this release.
Gii Extension (yii2-gii)
- Chg #7328: Changed the way CRUD generator translates "Create X". Now it's a whole string because of translation difficulties (samdark)
Imagine Extension (yii2-imagine)
- no changes in this release.
Jui Extension (yii2-jui)
- Enh #7127:
name
ormodel
andattribute
are no longer required properties ofyii\jui\InputWidget
(nirvana-msu, cebe)
Mongodb Extension (yii2-mongodb)
- Bug #7010: Fixed
yii\mongodb\Query::select
now allows excluding fields (Sammaye, klimov-paul)
Redis Extension (yii2-redis)
- no changes in this release.
Smarty Extension (yii2-smarty)
- Bug #6845: Fixed incorrect implementation of
{registerCssFile
and{registerJsFile
(TomassunGitHub, samdark) - Bug #6991: Fixed exception when using
{use class='yii\bootstrap\Nav' type='function'}
(ivanlemeshev)
Sphinx Extension (yii2-sphinx)
- Bug #7198:
yii\sphinx\Query
no longer attempts to call snippets for the empty query result set (Hrumpa)
Swiftmailer Extension (yii2-swiftmailer)
- no changes in this release.
Twig Extension (yii2-twig)
- no changes in this release.
2.0.2 January 11, 2015
- Bug #5577: formatting date and time values for years >=2038 or <=1901 on 32bit systems will not use intl extension but fall back to the PHP implementation (cebe)
- Bug #6080: Oracle DB schema did not load column types correctly (wenbin1989)
- Bug #6404: advanced project template
Alert
widget was generating duplicate IDs in case of multiple flashes (SDKiller) - Bug #6557: Link URLs generated by
yii\widgets\Menu
are not encoded (qiangxue) - Bug #6632:
yii\di\Container::get()
did not handle config parameter correctly when it is passed as a constructor parameter (qiangxue) - Bug #6648: Added explicit type casting to avoid dblib issues on SQL Server 2014 (o-rey)
- Bug #6691: Fixed console help description parsing with UTF8 characters (cebe)
- Bug #6717: Fixed issue with UrlManager not matching a route on url creation when it was prefixed with
/
and pattern was empty (cebe) - Bug #6736: Removed
Content-Transfer-Encoding
from the list of default download headers (DaSourcerer) - Enh #4502: Added alias support to URL route when calling
Url::toRoute()
andUrl::to()
(qiangxue, lynicidn) - Enh #5194:
yii\console\controllers\AssetController
now handles bundle files from external resources properly (klimov-paul) - Enh #6247: Logger and error handler are now using slightly less memory (stepanselyuk, samdark)
- Enh #6398: Added support for specifying dependent component in terms of a configuration array for classes such as
DbCache
(qiangxue) - Enh #6434: Added
yii\behaviors\SluggableBehavior::immutable
to support keeping the generated slug unchanged (trntv) - Enh #6467:
ActiveForm
will scroll to the nearest visible element when the first error input is hidden (newartix) - Enh #6488: Support changing
yii\base\Theme::basePath
during runtime (qiangxue) - Enh #6618: Added Model::addErrors() (slavcodev, pana1990)
- Enh #6739: Log
Target
now works also when there is noYii::$app
instance available, no message prefix will be added in this case (schmunk42) - Enh #6748: Improved HTML to Text converter in BaseMailer to generate more readable and correct text version of emails (cebe)
- Chg #6427: In case of invalid route web application now throws exception with "Page not found" instead of "Invalid Route" (cebe, samdark)
- Chg #6641: removed zero padding from ETag strings (DaSourcerer)
- Chg #6678:
yii\behaviors\SluggableBehavior
will generate a new slug only when the slug attribute is empty or the source attribute is changed (qiangxue)
Authclient Extension (yii2-authclient)
- Bug #6502: Fixed
\yii\authclient\OAuth2::refreshAccessToken()
does not save fetched token (sebathi) - Bug #6510: Fixed infinite redirect loop using default
\yii\authclient\AuthAction::cancelUrl
(klimov-paul)
Bootstrap Extension (yii2-bootstrap)
- Bug #6672:
yii\bootstrap\Dropdown
should register client event handlers (qiangxue)
Debug Extension (yii2-debug)
- Bug #4820: Fixed reading incomplete debug index data in case of high request concurrency (martingeorg, samdark)
- Chg #6572: Allow panels to stay even if they do not receive any debug data (qiangxue)
Elasticsearch Extension (yii2-elasticsearch)
- Enh: Added
ActiveFixture
class for testing fixture support for elasticsearch (cebe, viilveer)
Gii Extension (yii2-gii)
- Bug #6463: The Gii controller generator generates incorrect controller namespace (pana1990)
- Enh #3665: Better default behavior for ModelSearch generated by the crud generator (qiangxue, mdmunir)
Jui Extension (yii2-jui)
- Enh #6570: Datepicker now uses fallback to find language files, e.g. application language is
de-DE
and the translation files does not exists, it will usede
instead (cebe) - Enh #6471: Datepicker will now show an empty field when value is an empty string (cebe)
Mongodb Extension (yii2-mongodb)
- Bug #6376: Fixed lazy load of relations to
yii\mongodb\file\ActiveRecord
(klimov-paul)
Redis Extension (yii2-redis)
- Bug #6547: Fixed redis connection to deal with large data in combination with
mget()
(pyurin)
Sphinx Extension (yii2-sphinx)
- Bug #6621: Creating sub query at
yii\sphinx\Query::queryScalar()
fixed (klimov-paul)
Twig Extension (yii2-twig)
- Bug #6464:
path
andurl
weren't resolving aliases (samdark, lynicidn)
2.0.1 December 07, 2014
- Bug #4471:
yii\caching\ApcCache::getValues()
now returns array in case of APC is installed but not enabled in CLI mode (samdark, cebe) - Bug #4823:
yii message
accuracy and error handling were improved (samdark) - Bug #4889: Application was getting into redirect loop when user wasn't allowed accessing login page. Now shows 403 (samdark)
- Bug #5070: Gii controller generator should use controller class name instead of controller ID to specify new controller (qiangxue)
- Bug #5402: Debugger was not loading when there were closures in asset classes (samdark)
- Bug #5448: Date formatter was doing timezone conversion on date only values resulting in different date displayed than provided (cebe)
- Bug #5452: Errors occurring after the response is sent are not displayed (qiangxue)
- Bug #5521: Fixed
yii\console\controllers\AssetController
breaks CSS URLs, which start from '/' (klimov-paul) - Bug #5570:
yii\bootstrap\Tabs
would throw an exception ifcontent
is not set for one of itsitems
(RomeroMsk) - Bug #5584:
yii\rbac\DbRbacManager
should not delete items when deleting a rule on a database not supporting cascade update (mdmunir) - Bug #5601: Simple conditions in Query::where() and ActiveQuery::where() did not allow
yii\db\Expression
to be used as the value (cebe, stevekr) - Bug #5619:
yii\log\Target
should not attempt to start session when there is none (klimov-paul, qiangxue) - Bug #5657:
yii\caching\ApcCache::mset()
andmadd()
may cause warning in some APC setup (LAV45) - Bug #5665: The
currentPage
meta data in the RESTful result should be 1-based, similar to that in HTTP headers (qiangxue) - Bug #5682: The
asset
command would incorrectly combine CSS files whenUrlManager::linkAssets
is true (dmvslv) - Bug #5702: Parenthesis should be automatically added to
Validator::whenClient
to avoid js error (mdmunir, qiangxue) - Bug #5745: Gii and debug modules may cause 404 exception when the route contains dashes (qiangxue)
- Bug #5748: Smarty
{path
was generating absolute URLs instead of relative ones (samdark, motzel) - Bug #5768: When setting
data-confirm
attribute to a submit button, clicking on the button would not trigger form submission (qiangxue) - Bug #5780:
QueryBuilder::batchInsert()
may cause "undefined index" error (qiangxue) - Bug #5833: The
message
command fails with a FK constraint error when trying to update messages (qiangxue) - Bug #5863: Selecting all individual
yii\grid\CheckboxColumn
checkboxes in grid view wasn't resulting in "all" checkbox selected (samdark) - Bug #5893:
yii\helpers\ArrayHelper::toArray()
now applies$properties
parameter for converting descending objects in recursive calls (otsec) - Bug #5925:
ArrayHelper::htmlEncode()
does not work properly when the value being encoded is a nested array (tebazil) - Bug #5962: DateValidator was throwing a warning on invalid dates using the ICU format on Windows, Yii now works around this PHP Bug (cebe)
- Bug #5997: The same message may be exported twice to log targets (klimov-paul)
- Bug #6018: When setting the
encode
option viayii\widgets\ActiveRecord::errorOptions
, it works the other way around (stanishevsky, qiangxue) - Bug #6049:
yii\db\Connection::getSchema()
for Oracle should return false when the table does not exist. Oracle does not supportON UPDATE
clause. (wenbin1989) - Bug #6081:
yii\rbac\DbManager::getChildren()
was not quoting column name properly (wenbin1989) - Bug #6107:
yii message
was emptying existing translations in .po in case of multiple categories (samdark) - Bug #6112:
yii message
was incorrectly writing not yet translated strings in .po in case of multiple categories (samdark) - Bug #6172:
yii\rbac\DbManager
should properly quote table and column names (qiangxue) - Bug #6164: Added missing support for
yii\db\Expression
to QueryBuilderBETWEEN
andLIKE
conditions (cebe) - Bug #6236: No JS scripts should be registered when
yii\widgets\ActiveForm::enableClientScript
is false (qiangxue) - Bug #6150:
yii\bootstrap\Tabs
dropdown IDs were generated incorrectly (samdark) - Bug #6266: Clicking on reset button does not hide error summary when using
ActiveForm
(InteLigent, qiangxue) - Bug #6271: Query caching returns the same data when running the same SQL with different fetch modes (grachov)
- Bug #6279:
yii\db\Schema::getLastInsertID()
was passing wrong default schema name to PDO (samdark) - Bug #6305:
yii\i18n\Formatter::asParagraphs()
was not unicode-aware (samdark) - Bug #6311: Optimistic lock for ActiveRecord does not work as expected (qiangxue)
- Bug #6367: Added
yii\gii\generators\crud\Generator
to support customizing view path for the generated CRUD controller (qiangxue) - Bug #6381: Client-side file validation should be disabled if the browser does not support it (Skysplit)
- Bug: Gii console command help information does not contain global options (qiangxue)
- Bug:
yii\web\UrlRule
was unable to create URLs for rules containing unicode characters (samdark) - Bug:
yii\web\AssetManager
should not publish disabled asset bundles (qiangxue) - Enh #608: Added
yii\web\AssetConverter::$forceConvert
(klimov-paul) - Enh #4146: Added
yii\bootstrap\ButtonDropdown::$containerOptions
(samdark) - Enh #4181: Added
yii\bootstrap\Modal::$headerOptions
andyii\bootstrap\Modal::$footerOptions
(tuxoff, samdark) - Enh #4263: Added migration and SQL schema files for
yii\log\DbTarget
(samdark) - Enh #4395: Added
$checkAjax
parameter toyii\web\Response::redirect()
to support default redirection behavior for AJAX/PJAX requests (qiangxue) - Enh #4450: Added
yii\bootstrap\Nav::renderDropdown()
(qiangxue) - Enh #4457: Added support for using noscript for css files registered through asset bundles and Html helper (samdark)
- Enh #4492: Support PostgreSQL-specific syntax for
QueryBuilder::alterColumn()
(qiangxue) - Enh #4643: Extra options specified in
yii\widgets\Breadcrumbs::links
will be treated as HTML attributes for the generated hyperlinks (qiangxue) - Enh #4739: Better display of exceptions when the response format is set as "raw" format (qiangxue)
- Enh #4791: Added console output support and more colors for console commands (6pblcb, samdark, klimov-paul, Ragazzo)
- Enh #5005: Added support to suppress loading the same CSS files in AJAX responses (tof06, qiangxue)
- Enh #5223: Query builder now supports selecting sub-queries as columns (qiangxue)
- Enh #5367: Added
yii\grid\DataColumn::encodeLabel
(SDKiller) - Enh #5480: Added defensive code to
yii\web\User::getIdentity()
to avoid potential infinite recursion (qiangxue) - Enh #5494: Added support for specifying a menu header as a configuration array in
yii\bootstrap\Dropdown
(hiltonjanfield, qiangxue) - Enh #5503: Added support for
DateTimeImmutable
to Formatter (olegtsvetkov, cebe) - Enh #5587:
json_encode
is now used withJSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
where it makes sense, also it is now default forJson::encode()
(samdark) - Enh #5600: Allow configuring debug panels in
yii\debug\Module::panels
as panel class name strings (qiangxue) - Enh #5613: Added
--overwrite
option to Gii console command to support overwriting all files (motin, qiangxue) - Enh #5627: Added
yii cache/flush-schema
console command to flush DB schema cache of a given database connection (6pblcb, samdark) - Enh #5646: Call
yii\base\ErrorHandler::unregister()
instead ofrestore_*_handlers
directly (aivus) - Enh #5683: Added
yii\i18n\Formatter::defaultTimeZone
for specifying the default time zone to use for datetime values stored in the database (cebe) - Enh #5688: Added optional
$formName
toModel::loadMultiple()
to support customizing form name directly (qiangxue) - Enh #5735: Added
yii\bootstrap\Tabs::renderTabContent
to support manually rendering tab contents (RomeroMsk) - Enh #5770: Added more PHP error names for
ErrorException
(mongosoft) - Enh #5799:
yii\bootstrap\ButtonGroup::buttons
can take all options that are supported byyii\bootstrap\Button
(aleksanderd) - Enh #5806: Allow
Html::encode()
to be used when the application is not started (qiangxue) - Enh #5954:
yii message
command now shows user friendly error if it's not able to parse source file (samdark) - Enh #5983: Added
Inflector::sentence()
(pana1990, qiangxue) - Enh #6113: Improved debugger configuration and request UI (schmunk42)
- Enh #6207: Added support for truncating HTML strings using
StringHelper::truncate()
andStringHelper::truncateWords()
(Alex-Code) - Enh #6318: Made widgets more error-tolerant and user-friendly when certain option values are null (qiangxue)
- Enh:
Console::confirm()
now usesConsole::stdout()
instead ofecho
to be consistent with all other functions (cebe) - Enh:
yii\rbac\DbManager
migration now uses database component specified in component settings instead of always using defaultdb
(samdark) - Enh: Added
yii\base\Controller::renderContent()
(qiangxue) - Enh:
yii fixture
command now offers help if no arguments are provided instead of crashing (samdark) - Chg #3630:
yii\db\Command::queryInternal()
is now protected (samdark) - Chg #4277:
yii\grid\GridView
is no longer throwing an exception when results are empty andcolumns
aren't defined (samdark) - Chg #5508: Dropped the support for the
--append
option for thefixture
command (qiangxue) - Chg #5874: Upgraded Twitter Bootstrap to 3.3.x (samdark)
Apidoc Extension (yii2-apidoc)
- Bug #5623: Fixed crash when a class contains a setter that has no arguments e.g.
setXyz()
(cebe) - Bug #5899: Incorrect class listed as
definedBy
reference for properties (cebe) - Bug: Guide and API renderer now work with relative paths/URLs (cebe)
- Enh: Guide generator now skips
images
directory if it does not exist instead of throwing an error (cebe) - Enh: Made
--guidePrefix
option available as a command line option (cebe)
Authclient Extension (yii2-authclient)
- Bug #6000: Fixed CCS for
yii\authclient\widgets\AuthChoice
does not loaded ifpopupMode
disabled (klimov-paul)
Bootstrap Extension (yii2-bootstrap)
- Bug #5570:
yii\bootstrap\Tabs
would throw an exception ifcontent
is not set for one of itsitems
(RomeroMsk) - Bug #6150:
yii\bootstrap\Tabs
dropdown IDs were generated incorrectly (samdark) - Enh #4146: Added
yii\bootstrap\ButtonDropdown::$containerOptions
(samdark) - Enh #4181: Added
yii\bootstrap\Modal::$headerOptions
andyii\bootstrap\Modal::$footerOptions
(tuxoff, samdark) - Enh #4450: Added
yii\bootstrap\Nav::renderDropdown()
(qiangxue) - Enh #5494: Added support for specifying a menu header as a configuration array in
yii\bootstrap\Dropdown
(hiltonjanfield, qiangxue) - Enh #5735: Added
yii\bootstrap\Tabs::renderTabContent
to support manually rendering tab contents (RomeroMsk) - Enh #5799:
yii\bootstrap\ButtonGroup::buttons
can take all options that are supported byyii\bootstrap\Button
(aleksanderd) - Chg #5874: Upgraded Twitter Bootstrap to 3.3.x (samdark)
Debug Extension (yii2-debug)
- Bug #5402: Debugger was not loading when there were closures in asset classes (samdark)
- Bug #5745: Gii and debug modules may cause 404 exception when the route contains dashes (qiangxue)
- Enh #5600: Allow configuring debug panels in
yii\debug\Module::panels
as panel class name strings (qiangxue) - Enh #6113: Improved configuration and request UI (schmunk42)
- Enh: Made
DefaultController::getManifest()
more robust against corrupt files (cebe)
Elasticsearch Extension (yii2-elasticsearch)
- Bug #5662: Elasticsearch AR updateCounters() now uses explicitly
groovy
script for updating making it compatible with ES >1.3.0 (cebe) - Bug #6065:
ActiveRecord::unlink()
was failing in some situations when working with relations via array valued attributes (cebe) - Enh #5758: Allow passing custom options to
ActiveRecord::update()
and::delete()
including support for routing needed for updating records with parent relation (cebe) - Enh: Add support for optimistic locking (cebe)
Gii Extension (yii2-gii)
- Bug #5070: Gii controller generator should use controller class name instead of controller ID to specify new controller (qiangxue)
- Bug #5745: Gii and debug modules may cause 404 exception when the route contains dashes (qiangxue)
- Bug #6367: Added
yii\gii\generators\crud\Generator
to support customizing view path for the generated CRUD controller (qiangxue) - Bug: Gii console command help information does not contain global options (qiangxue)
- Enh #5613: Added
--overwrite
option to Gii console command to support overwriting all files (motin, qiangxue)
Mongodb Extension (yii2-mongodb)
- Bug #6026: Fixed
yii\mongodb\ActiveRecord
savesnull
as_id
, if attributes are empty (klimov-paul) - Enh #3855: Added debug toolbar panel for MongoDB (klimov-paul)
- Enh #5592: Added support for 'findAndModify' operation at
yii\mongodb\Query
andyii\mongodb\ActiveQuery
(klimov-paul)
Redis Extension (yii2-redis)
- Bug #4745: value of simple string returns was ignored by redis client and
true
is returned instead, now onlyOK
will result in atrue
while all other values are returned as is (cebe) - Enh #3714: Added support for connecting to redis server using a unix socket (savvot, robregonm)
Smarty Extension (yii2-smarty)
- Bug #5748:
{path
was generating absolute URLs instead of relative ones (samdark, motzel)
Sphinx Extension (yii2-sphinx)
- Bug #5601: Simple conditions in Query::where() and ActiveQuery::where() did not allow
yii\db\Expression
to be used as the value (cebe, stevekr) - Bug #5634: Fixed
yii\sphinx\QueryBuilder
does not support comparison operators (>,<,>= etc) in where specification (klimov-paul) - Bug #6164: Added missing support for
yii\db\Exression
to QueryBuilderLIKE
conditions (cebe) - Enh #5223: Query builder now supports selecting sub-queries as columns (qiangxue)
2.0.0 October 12, 2014
- Bug #4881: Fixed
yii\console\controllers\AssetController
breaks CSS URLs on Windows (klimov-paul) - Bug #5171: Fixed the bug that ActiveForm + Pjax submit event is only triggered once (qiangxue)
- Bug #5242: Fixed
yii\console\controllers\AssetController
breaks CSS URLs in case target file localed atyii\web\AssetManager::basePath
root (klimov-paul) - Bug #5252: Null values are not properly handled by
RangeValidator
(githubjeka, qiangxue) - Bug #5260:
yii\i18n\Formatter::decimalSeparator
andyii\i18n\Formatter::thousandSeparator
where not configurable when intl is not installed (execut, cebe) - Bug #5314: Fixed typo in the implementation of
yii\web\Session::getHasSessionId()
(qiangxue) - Bug #5323: Nested dropdown does not work for
yii\bootstrap\DropDown
(aryraditya) - Bug #5336:
yii\bootstrap\DropDown
should register bootstrap plugin asset (zelenin) - Bug #5379:
Module::afterAction()
was called even whenbeforeAction()
returned false (cebe) - Bug #5408: Gii console command incorrectly reports errors when there is actually no error (qiangxue)
- Bug #5423:
yii\behaviors\Cors
causes "undefined index" error when itscors
is configured (qiangxue) - Bug #5424:
Html::addCssStyle()
wasn't correctly setting style passed in array (kartik-v, samdark) - Bug #5435: Added extra checks to
yii\rbac\DbManager
to prevent database exceptions when$userId
is empty (samdark) - Bug #5484: Fixed potential string suffix detection failure on 5.5.11 (qiangxue)
- Bug: Date and time formatting now assumes UTC as the timezone for input dates unless a timezone is explicitly given (cebe)
- Enh #4040: Added
$viewFile
and$params
to theEVENT_BEFORE_RENDER
andEVENT_AFTER_RENDER
events forView
(qiangxue) - Enh #4275: Added
removeChildren()
toyii\rbac\ManagerInterface
and implementations (samdark) - Enh: Added
yii\base\Application::loadedModules
(qiangxue) - Enh #5316: Added
startsWith()
andendsWith()
toyii\helpers\StringHelper
. Methods are binary-safe, multibyte-safe and optionally case-insensitive (armab) - Enh #5467: Added ability to pass HTML tag options to
asEmail()
,asImage()
andasUrl()
methods ofyii\i18n\Formatter
(alxkolm, samdark) - Chg #2037: Dropped the support for using
yii\base\Module
as concrete module classes (qiangxue) - Chg: Updated cebe/markdown to 1.0.0 which includes breaking changes in its internal API (cebe)
- Chg: If you are using CUBRID DBMS, make sure to use at least version 9.3.0 because quoting is broken in prior versions and Yii has no reliable way to work around this issue (cebe)
2.0.0-rc September 27, 2014
- Bug #1263: Fixed the issue that Gii and Debug modules might be affected by incompatible asset manager configuration (qiangxue)
- Bug #2314: Gii model generator does not generate correct relation type in some special case (qiangxue)
- Bug #2563: Theming is not working if the path map of the theme contains ".." or "." in the paths (qiangxue)
- Bug #2801: Fixed the issue that GridView gets footer content before data cells content (ElisDN)
- Bug #2821: Console help command incorrectly lists non-console controllers as available commands (qiangxue)
- Bug #2853: ActiveRecord did not handle resource-typed columns well (chris68, qiangxue)
- Bug #3042:
yii\widgets\Pjax
should end application right after it finishes responding to a pjax request (qiangxue) - Bug #3066:
yii\db\mssql\Schema::getTableSchema()
should return null when the table does not exist (qiangxue) - Bug #3091: Fixed inconsistent treatment of
Widget::run()
when a widget is used as a container and as a self-contained object (qiangxue) - Bug #3118: Ensure client validation has the same behavior as server side validation for number validator (cebe)
- Bug #3121:
yii\base\Application::bootstrap
may fail to load some components if they are specified as class names (qiangxue) - Bug #3125:
yii\console\controllers\AssetController
now respects data URL resources (klimov-paul) - Bug #3128: Fixed the bug that
defaultRoles
set in RBAC manager was not working as specified (qiangxue) - Bug #3153: Fixed the bug that using "between" operator to build a SQL query will cause a PHP notice (gonimar)
- Bug #3184: Fixed the bug that client validation for string length comparison did not set error message correctly (Sergeygithub)
- Bug #3194: Date formatter works only for timestamps in the year range 1970 to 2038 (kartik-v)
- Bug #3197: Using
ActiveQuery::indexBy()
may cause relational AR queries to generate incorrect relational results (qiangxue) - Bug #3204:
yii\di\Container
did not handle the$config
parameter well in case when it does not have a default value (qiangxue) - Bug #3216: Fixed the bug that
yii.activeForm.destroy()
did not removesubmit
event handlers (qiangxue) - Bug #3233: Ensure consistent behavior in ActiveRecord::afterSave() (cebe, qiangxue)
- Bug #3236: Return value for DateTime->format('U') casted to double to allow correct date formatting (pgaultier)
- Bug #3268: Fixed the bug that the schema name in a table name was not respected by
yii\db\mysql\Schema
(terazoid, qiangxue) - Bug #3311: Fixed the bug that
yii\di\Container::has()
did not return correct value (mgrechanik, qiangxue) - Bug #3327: Fixed "Unable to find debug data" when logging objects with circular references (jarekkozak, samdark)
- Bug #3368: Fix for comparing numeric attributes in JavaScript (technixp)
- Bug #3393: Fix
yii\helpers\FileHelper::copyDirectory()
pattern not working (klimov-paul) - Bug #3431: Allow using extended ErrorHandler class from the app namespace (cebe)
- Bug #3436: Fixed the issue that
ServiceLocator
still returns the old component after callingset()
with a new definition (qiangxue) - Bug #3458: Fixed the bug that the image rendered by
CaptchaAction
was using a wrong content type (MDMunir, qiangxue) - Bug #3473: Allow postgreSQL to specify timestamp precision via abstract types in QueryBuilder (cebe)
- Bug #3478: Fixed yii\console\Controller::select accept empty input as '0' value (lynicidn)
- Bug #3522: Fixed BaseFileHelper::normalizePath to allow a (.) for the current path. (skotos)
- Bug #3548: Fixed the bug that X-Rate-Limit-Remaining header is always zero when using RateLimiter (qiangxue)
- Bug #3559: Use native support for batchInsert in SQLite versions >= 3.7.11 and avoid limitations of the fallback (cebe)
- Bug #3564: Fixed the bug that primary key columns should not take default values from schema (qiangxue)
- Bug #3567: Fixed the bug that smallint was treated as string for PostgreSQL (qiangxue)
- Bug #3568: When the primary query sets
asArray
, it is not respected by thevia
relational query (qiangxue) - Bug #3578: Fixed postgreSQL column type detection, added missing types (MDMunir, cebe)
- Bug #3583: Added typecast to auto value of primary key on insert of sql active record (cebe)
- Bug #3591: Fixed incomplete obsolete filling in i18n
MessageController::saveMessagesToDb()
(advsm) - Bug #3601: Fixed the bug that the refresh URL was not generated correctly by
Captcha
(qiangxue, klevron) - Bug #3638:
yii\filters\HttpCache
does not work as expected when session is started before the filter (qiangxue) - Bug #3681: Fixed problem with AR::findOne() when a default scope joins another table so that PK name becomes ambigous (cebe)
- Bug #3715: Fixed the bug that using a custom pager/sorter with
GridView
may generate two different pagers/sorters if the layout configures two pagers/sorters (qiangxue) - Bug #3716:
DynamicModel::validateData()
does not callvalidate()
if the$rules
parameter is empty (qiangxue) - Bug #3725: Fixed the bug that the filtering condition used in relation definition was ignored when calling
ActiveRecord::unlinkAll()
. (qiangxue, cebe) - Bug #3738: ActiveField custom error selector not functioning (qiangxue)
- Bug #3751: Fixed postgreSQL schema data for enum values, do not add values if there are none (makroxyz)
- Bug #3752:
QueryBuilder::batchInsert()
does not typecast input values (qiangxue) - Bug #3756: Fix number formatting error for
\yii\base\Formatter
by converting strings to float (kartik-v) - Bug #3772: Behaviors adding validation rules do not work as expected (qiangxue)
- Bug #3817:
yii\rbac\PhpManager::getChildren()
returns null instead of expected empty array (qiangxue) - Bug #3843: Fixed Menu bug when using
template
withencodeLabel
=> false (creocoder, umneeq) - Bug #3863: Fixed incorrect js selector for
\yii\widgets\ActiveForm::errorSummaryCssClass
when it contains multiple classes (creocoder, umneeq) - Bug #3893: Headers did not overwrite default setting by webserver (cebe)
- Bug #3909:
Html::to()
should not prefix base URL to URLs that already contain scheme (qiangxue) - Bug #3920: Fixed issue with loading default values of PostgreSQL boolean columns (cebe)
- Bug #3934: yii.handleAction() in yii.js does not correctly detect if a hyperlink contains useful URL or not (joni-jones, qiangxue)
- Bug #3968: Messages logged in shutdown functions are not handled (qiangxue)
- Bug #3989: Fixed yii\log\FileTarget::$rotateByCopy to avoid any rename (cebe)
- Bug #3996: Traversing
Yii::$app->session
may cause a PHP error (qiangxue) - Bug #4020: OCI column detection did not work so gii and other things failed (Sanya1991)
- Bug #4105: Html::dropDownlist options encodeSpaces was not applied to subgroups (MDMunir)
- Bug #4123: Trace level in logger had no effect in Targets, traces where not logged (cebe)
- Bug #4127:
CaptchaValidator
clientside error message wasn't formed properly (samdark) - Bug #4162: Fixed bug where schema name was not used in ’SHOW CREATE TABLE’ query in
yii\db\mysql\Schema
(stevekr) - Bug #4241:
yii\widgets\Pjax
was incorrectly setting container id (mitalcoi) - Bug #4254:
SqlDataProvider
does not work with Oracle and SQL Server (qiangxue, miramir) - Bug #4276: Added check for UPLOAD_ERR_NO_FILE in
yii\web\UploadedFile
and return null if no file was uploaded (OmgDef) - Bug #4342: mssql (dblib) driver does not support getting attributes (tof06)
- Bug #4371: Active form client validation wasn't working in case of two models having same named fields (abrahamy)
- Bug #4409: Upper case letters in subdirectory prefixes of controller IDs were not properly handled (qiangxue)
- Bug #4412: Formatter used SI Prefixes for base 1024, now uses binary prefixes (kmindi)
- Bug #4427: Formatter could do one division too much (kmindi)
- Bug #4453:
yii message/extract
wasn't properly writing to po files in case of multiple categories (samdark) - Bug #4469: Make
Security::compareString()
timing depend only on length of$actual
input and add unit test. (tom--) - Bug #4470: Avoid endless loop when exporting logs with low values of flushInterval and eportInterval (cebe)
- Bug #4497: Fixed StringHelper::byteSubstr() returning empty string on null $length param (mbman)
- Bug #4514: Fixed Request class crashing when empty CSRF token value is sent in cookie (cebe)
- Bug #4519:
yii\base\Model::isAttributeRequired()
should check if thewhen
option of the validator is set (thiagotalma) - Bug #4592: Fixed
yii help
command was listing incorrect action names for methods likeactionSayNO
(samdark) - Bug #4654: Fixed issue with PostgreSQL and inserting boolean values with batch insert (cebe)
- Bug #4672: Fixed issue with PostgreSQL handling of boolean values in queries, dropped support for using boolean value for integer columns (cebe)
- Bug #4727: Fixed wrong Stylus definition in
\yii\web\AssetConverter
(samdark) - Bug #4755:
yii\test\BaseActiveFixture::unload()
does not clean up the internal cached data (qiangxue) - Bug #4813: Fixed MSSQL schema that was getting incorrect info about constraints (samdark, SerjRamone, o-rey)
- Bug #4880: Return value of yii\web\Request::getPrefferedLanguage() was a normalized value instead of a valid language value from the input array (cebe)
- Bug #4905: ActiveForm::$validationDelay doesn't delay after keyrelease when $validateOnType=true (qiangxue)
- Bug #4920:
yii\filters\auth\CompositeAuth
should not trigger error as long as one of the methods succeeds (qiangxue) - Bug #4926: Fixed
yii\console\controllers\MessageController
handles category name containing dot incorrectly (klimov-paul) - Bug #4938: When
yii\db\ActiveQuery
is used to build sub-queries, its WHERE clause is not correctly generated (qiangxue) - Bug #4954: MSSQL column comments are not retrieved correctly (SerjRamone)
- Bug #4970:
joinWith()
called by a relation was ignored byyii\db\ActiveQuery
(stepanselyuk) - Bug #5001:
yii\rest\CreateAction
,yii\rest\UpdateAction
andyii\rest\DeleteAction
should throw 500 error if the model operation returns false without validation errors (qiangxue) - Bug #5039:
UniqueValidator
andExistValidator
did not respect query conditions added by default scope (qiangxue) - Bug #5049:
ActiveForm::validationDelay
should be applied to user types only (qiangxue) - Bug #5055: Fixed
yii\console\controllers\CacheController
does not check if cache component instance of 'yii\caching\Cache' (klimov-paul) - Bug #5126: Fixed text body and charset not being set for multipart mail (nkovacs)
- Bug: Fixed inconsistent return of
\yii\console\Application::runAction()
(samdark) - Bug: URL encoding for the route parameter added to
\yii\web\UrlManager
(klimov-paul) - Bug: Fixed the bug that requesting protected or private action methods would cause 500 error instead of 404 (qiangxue)
- Bug: Fixed Object of class Imagick could not be converted to string in CaptchaAction (eXprojects, cebe)
- Bug: Fixed wrong behavior of
StringHelper::byteSubstr()
in some edge cases (cebe) - Enh #87: Helper
yii\helpers\Security
converted into application component, cryptographic strength improved (klimov-paul) - Enh #422: Added Support for BIT(M) data type default values in Schema (cebe)
- Enh #1160: Added $strict parameter to Inflector::camel2id() to handle consecutive uppercase chars (schmunk)
- Enh #1249: Added support for Active Record relation via array attributes (klimov-paul, cebe)
- Enh #1388: Added mapping from physical types to abstract types for OCI DB driver (qiangxue)
- Enh #1452: Added
Module::getInstance()
to allow accessing the module instance from anywhere within the module (qiangxue) - Enh #2264:
CookieCollection::has()
will return false for expired or removed cookies (qiangxue) - Enh #2315: Any operator now could be used with
yii\db\Query::->where()
operand format (samdark) - Ehn #2380: Added
yii\widgets\ActiveForm::enableClientScript
to support turning on and off client side script generation (qiangxue) - Enh #2435:
yii\db\IntegrityException
is now thrown on database integrity errors instead of generalyii\db\Exception
(samdark) - Enh #2558: Enhanced support for memcached by adding
yii\caching\MemCache::persistentId
andyii\caching\MemCache::options
(qiangxue) - Enh #2837: Error page now shows arguments in stack trace method calls (samdark)
- Enh #2906: Added support for using conditional comments for js and css files registered through asset bundles and Html helper (exromany, qiangxue)
- Enh #2942: Added truncate and truncateWord methods (Alex-Code, samdark)
- Enh #3008: Added
Html::errorSummary()
(qiangxue) - Enh #3088: The debug and gii modules will manage their own URL rules now (hiltonjanfield, qiangxue)
- Enh #3101: Improved handling of log target failures. It will now skip target and log reason instead of going into infinite cycle (samdark)
- Enh #3103: debugger panel is now not displayed when printing a page (githubjeka)
- Enh #3108: Added
yii\debug\Module::enableDebugLogs
to disable logging debug logs by default (qiangxue) - Enh #3132:
yii\rbac\PhpManager
now supports more compact data file format (qiangxue) - Enh #3154: Added validation error display for
GridView
filters (ivan-kolmychek) - Enh #3177:
yii\filters\auth\CompositeAuth
will send out challenges from all auth methods (qiangxue) - Enh #3196: Masked input upgraded to use jquery.inputmask plugin with more features. (kartik-v)
- Enh #3220: Added support for setting transaction isolation levels (cebe)
- Enh #3221: Added events for DB transaction commit/rollback (drcypher, qiangxue)
- Enh #3222: Added
useTablePrefix
option to the model generator for Gii (horizons2) - Enh #3230: Added
yii\filters\AccessControl::user
to support access control with different actors (qiangxue) - Enh #3232: Added
export()
andexportAsString()
methods toyii\helpers\BaseVarDumper
(klimov-paul) - Enh #3240: Added support for assigning an anonymous function to
yii\widgets\ActiveForm::fieldConfig
(qiangxue) - Enh #3244: Allow logging complex data such as arrays and object via the log system (cebe)
- Enh #3252: Added support for case insensitive matching using ILIKE to PostgreSQL QueryBuilder (cebe)
- Enh #3280: Support dynamically attaching anonymous behaviors (qiangxue)
- Enh #3283: Added
$checkAjax
toyii\web\User::loginRequired()
(qiangxue) - Enh #3284: Added support for checking multiple ETags by
yii\filters\HttpCache
(qiangxue) - Enh #3298: Supported configuring
View::theme
using a class name (netyum, qiangxue) - Enh #3328:
BaseMailer
generates better text body from html body (armab) - Enh #3380: Allow
value
indefaultValueValidator
to be a closure (Alex-Code) - Enh #3384: Added callback-style transactions (leandrogehlen, Ragazzo, samdark)
- Enh #3399, #3241: Added support for MS SQL Server older than 2012 (fourteenmeister, samdark)
- Enh #3410: yii.activeForm.js now supports adding/removing fields dynamically (qiangxue)
- Enh #3459: Added logging of errors, which may occur at
yii\caching\FileCache::gc()
(klimov-paul) - Enh #3472: Added configurable option to encode spaces in dropDownLists and listBoxes (kartik-v)
- Enh #3518:
yii\helpers\Html::encode()
now replaces invalid code sequences with "<EFBFBD>" (DaSourcerer) - Enh #3520: Added
unlinkAll()
-method to active record to remove all records of a model relation (NmDimas, samdark, cebe) - Enh #3521: Added
yii\filters\HttpCache::sessionCacheLimiter
(qiangxue) - Enh #3542: Removed requirement to specify
extensions
in application config (samdark) - Enh #3562: Adding rotateByCopy to yii\log\FileTarget (pawzar)
- Enh #3574: Add integrity check support for SQLite (zeeke)
- Enh #3581: Added
yii\validators\CompareValidator::type
to support type conversion before comparing values (qiangxue) - Enh #3597: Nested array support for HTML5 custom "data-*" attributes (armab)
- Enh #3607: Added support for limit in migrations actions: history, new, redo (Ragazzo)
- Enh #3631: Added property
currencyCode
toyii\i18n\Formatter
(leandrogehlen) - Enh #3636: Hide menu container tag with empty items in
yii\widgets\Menu
(arturf) - Enh #3643: Improved Mime-Type detection by using the
mime.types
file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder) - Enh #3765: Added
yii\web\User::enableSession
to support authentication without using session (qiangxue) - Enh #3708: Added database replication and automatic read-write splitting support for
yii\db\Connection
(qiangxue) - Enh #3773: Added
FileValidator::mimeTypes
to support validating MIME types of files (Ragazzo) - Enh #3774: Added
FileValidator::checkExtensionByMimeType
to support validating file types against file mime-types (Ragazzo) - Enh #3801: Base migration controller
yii\console\controllers\BaseMigrateController
extracted (klimov-paul) - Enh #3811: Now Gii model generator makes autocomplete for model class field (mitalcoi)
- Enh #3926:
yii\widgets\Breadcrumbs::$links
. Allows individual link to have its owntemplate
(creocoder, umneeq) - Enh #3939:
\yii\Inflector::slug()
improvements (samdark)- Added protected
\yii\Inflector::transliterate()
that could be replaced with custom translit implementation. - Added proper tests for both intl-based slug and PHP fallback.
- Removed character maps for non-latin languages.
- Improved overall slug results.
- Added note about the fact that intl is required for non-latin languages to requirements checker.
- Added protected
- Enh #3957: Added more straightforward configurable properties to
BlameableBehavior
,SluggableBehavior
andTimestampBehavior
(creocoder) - Enh #3992: In mail layouts you can now access the message object via
$message
variable (qiangxue) - Enh #4028: Added ability to
yii\widgets\Menu
to encode each item's label separately (creocoder, umneeq) - Enh #4048: Added
init
event toActiveQuery
classes (qiangxue) - Enh #4072:
\yii\rbac\PhpManager
adjustments (samdark)- Data is now stored in three separate files for items, assignments and rules. File format is simpler.
- Removed
authFile
. AddeditemFile
,assignmentFile
andruleFile
. createdAt
andupdatedAt
are now properly filled with corresponding file modification time.save()
andload()
are now protected instead of public.- Added unit test for saving and loading data.
- Enh #4080: Added proper handling and support of the symlinked directories in
FileHelper
, added $options parameter inFileHelper::removeDirectory()
(resurtm) - Enh #4086: changedAttributes of afterSave Event now contain old values (dizews)
- Enh #4114: Added
Security::generateRandomBytes()
, improved tests (samdark) - Enh #4122:
Html::error()
andHtml::errorSummary()
are now acceptingencode
option. If set to false it prevents encoding of error messages (samdark) - Enh #4131: Security adjustments (tom--)
- Added HKDF to
yii\base\Security
. - Reverted auto fallback to PHP PBKDF2.
- Fixed PBKDF2 key truncation.
- Adjusted API.
- Added HKDF to
- Enh #4209: Added
beforeCopy
,afterCopy
,forceCopy
properties to AssetManager (cebe) - Enh #4225: Added
ActiveForm::validateOnBlur
andActiveField::validateOnBlur
(qiangxue) - Enh #4297: Added check for DOM extension to requirements (samdark)
- Enh #4317: Added
absoluteAuthTimeout
to yii\web\User (ivokund, nkovacs) - Enh #4360: Added client validation support for file validator (Skysplit)
- Enh #4372:
yii\filters\HttpCache
failed to comply to RFC 7232 (DaSourcerer) - Enh #4424: Added
inline
parameter toyii\web\Response::xSendFile()
(klimov-paul) - Enh #4436: Added callback functions to AJAX-based form validation (thiagotalma)
- Enh #4485: Added support for deferred validation in
ActiveForm
(Alex-Code) - Enh #4520: Added sasl support to
yii\caching\MemCache
(xjflyttp) - Enh #4566: Added client validation support for image validator (Skysplit, qiangxue)
- Enh #4581: Added ability to disable url encoding in
UrlRule
(tadaszelvys) - Enh #4602: Added $key param in ActionColumn buttons Closure call (disem)
- Enh #4607: AR model will throw an exception if it does not have a primary key to avoid updating/deleting data massively (qiangxue)
- Enh #4630: Added automatic generating of unique slug value to
yii\behaviors\Sluggable
(klimov-paul) - Enh #4636: Added
yii\web\Response::setDownloadHeaders()
(pawzar) - Enh #4644: Added
yii\db\Schema::createColumnSchema()
to be able to customize column schema used (mcd-php) - Enh #4656: HtmlPurifier helper config can now be a closure to change the purifier config object after it was created (Alex-Code)
- Enh #4062: Added 'caseSensitive' option to
yii\helpers\BaseFileHelper::findFiles()
(klimov-paul) - Enh #4691: Encoding on
ActiveForm
andActiveField
validation errors is now configurable (Alex-Code) - Enh #4740: Added
yii\web\Session::addFlash()
(restyler) - Enh #4897: Added
yii\helpers\FileHelper::mimeMagicFile
(qiangxue) - Enh #5058: Added
$pageSize
parameter toPagination::createUrl()
to allow creating URLs with arbitrary page sizes (cdcchen, qiangxue) - Enh #5089: Added asset debugger panel (arturf, qiangxue)
- Enh #5117: Added
beforeFilter
andafterFilter
JS events toGridView
(kartik-v) - Enh #5124: Added support to prevent duplicated form submission when using
ActiveForm
(qiangxue) - Enh #5131: Added
$autoRenew
parameter toyii\web\User::getIdentity()
(qiangxue) - Enh #5164: Added
Inlfector::$transliterator
that can be used to customize intl transliteration (zinzinday) - Enh: Added support for using sub-queries when building a DB query with
IN
condition (qiangxue) - Enh: Supported adding a new response formatter without the need to reconfigure existing formatters (qiangxue)
- Enh: Added
yii\web\UrlManager::addRules()
to simplify adding new URL rules (qiangxue) - Enh: Added support to insert an event handler at the beginning of class-level event handler queue (qiangxue)
- Enh: Added
yii\console\Controller::EXIT_CODE_NORMAL
andyii\console\Controller::EXIT_CODE_ERROR
constants (samdark) - Enh:
yii\console\MigrateController
now returnsyii\console\Controller::EXIT_CODE_ERROR
in case of failed migration (samdark) - Enh: Added method ErrorHandler::unregister() for unregistering the ErrorHandler (cebe)
- Enh: Added
all
option toMigrateController::actionDown()
action (creocoder, umneeq) - Enh: Added support for array attributes in
exist
validator (creocoder) - Enh: Added support for using path alias with
FileDependency::fileName
(qiangxue) - Enh: Added param
hideOnSinglePage
toyii\widgets\LinkPager
(arturf) - Enh: Added support for array attributes in
in
validator (creocoder) - Enh: Improved
yii\helpers\Inflector::slug
to support more cases for Russian, Hebrew and special characters (samdark) - Enh: ListView now uses the widget ID in the base tag, consistent to gridview (cebe)
- Enh: Added
yii\web\Response::enableCsrfCookie
to support storing CSRF tokens in session (qiangxue) - Chg #2287: Split
yii\db\ColumnSchema::typecast()
into two methodsphpTypecast()
anddbTypecast()
to allow specifying PDO type explicitly (cebe) - Chg #2359: Refactored formatter class. One class with or without intl extension and PHP format pattern as standard (Erik_r, cebe)
yii\base\Formatter
functionality has been merged intoyii\i18n\Formatter
- removed the
yii\base\Formatter
class
- Chg #1551: Refactored DateValidator to support ICU date format and use the format defined in Formatter by default (cebe)
- Chg #2898:
yii\console\controllers\AssetController
is now using hashes instead of timestamps (samdark) - Chg #2913: RBAC
DbManager
is now initialized via migration (samdark) - Chg #2914:
ActiveForm::fieldConfig
will be merged recursively with the$options
parameter inActiveForm::field()
(qiangxue) - Chg #3036: Upgraded Twitter Bootstrap to 3.1.x (qiangxue)
- Chg #3175: InvalidCallException, InvalidParamException, UnknownMethodException are now extended from SPL BadMethodCallException (samdark)
- Chg #3358: Removed automatic CSRF meta tag generation by
View
. AddedHtml::csrfMetaTags()
and its call to main layout files (qiangxue) - Chg #3383: Added
$type
parameter toIdentityInterface::findIdentityByAccessToken()
(qiangxue) - Chg #3511: Dropped
yii.allowAction()
and modifiedyii.confirm()
inyii.js
to support callbacks (tanakahisateru) - Chg #3531: \yii\grid\GridView now allows any character (except ":") in the attribute part of the shorthand syntax for columns (rawtaz)
- Chg #3544: Added
$key
as a parameter to the callable specified viayii\grid\DataColumn::value
(mdmunir) - Chg #3611: Query caching is refactored. (qiangxue)
yii\db\Connection::beginCache()
andendCache()
are removed.- Added
yii\db\Connection::cache()
andnoCache()
. - Added
Command::cache()
andnoCache()
. yii\db\Connection::queryCacheDuration
is now used as a default cache duration parameter.
- Chg #3640: All cookies are now httpOnly by default in order to increase overall security (samdark)
- Chg #3687: Default
sourceLanguage
andlanguage
are nowen-US
in order for i18n formatter to work correctly (samdark) - Chg #3804: Added
fileinfo
PHP extension to the basic requirement of Yii (Ragazzo) - Chg #3866: The
FileValidator::types
property is renamed toFileValidator::extensions
(Ragazzo) - Chg #3897: Raised visibility of
yii\web\View::registerAssetFiles()
to protected (samdark) - Chg #3899: Moved
MailEvent
class toyii\mail
namespace (cebe) - Chg #3910: Removed the
container
option fromHtml::checkbox()
andHtml::radio()
(creocoder) - Chg #3956: Flash messages set via
Yii::$app->session->setFlash()
will be removed only if they are accessed (qiangxue) - Chg #3989: The default value for
yii\log\FileTarget::$rotateByCopy
now defaults to true to work on windows by default (cebe) - Chg #4051: Renamed
yii\caching\GroupDependency
toTagDependency
and added support for associating multiple tags to a single cached data item (qiangxue) - Chg #4071:
mail
component renamed tomailer
,yii\log\EmailTarget::$mail
renamed toyii\log\EmailTarget::$mailer
(samdark) - Chg #4147:
BaseMailer::compose()
will not overwrite themessage
parameter if it is explicitly provided (qiangxue) - Chg #4188: API exceptions are now exposing less data when YII_DEBUG is false (samdark)
- Chg #4201: change default value of
SyslogTarget::facility
fromLOG_SYSLOG
toLOG_USER
(dizews) - Chg #4211: BaseActiveRecord::populateRecord now silently hide selected columns that are not defined in AR instead of failing with an error (miramir)
- Chg #4227:
\yii\widgets\LinkPager::$hideOnSinglePage
is nowtrue
by default (samdark) - Chg #4310: Removed
$data
from signature ofyii\rbac\ManagerInterface
(samdark) - Chg #4318:
yii\helpers\Html::ul()
andol()
will return an empty list tag if an empty item array is given (qiangxue) - Chg #4331:
yii\helpers\Url
now usesUrlManager
to determine base URL when generating URLs (qiangxue) - Chg #4424: Added
inline
andmimeType
options to all file downloading methods provided inyii\web\Response
(qiangxue) - Chg #4454: Improved asset bundle managed and used composer-asset-plugin to manage the dependencies on 3rd-party JS libraries (qiangxue)
- Chg #4501: Renamed the constant
YII_PATH
toYII2_PATH
(qiangxue) - Chg #4586: Signed bigint and unsigned int will be converted into integers when they are loaded from DB by AR (qiangxue)
- Chg #4591:
yii\helpers\Url::to()
will no longer prefix relative URLs with the base URL (qiangxue) - Chg #4595:
yii\widgets\LinkPager
'snextPageLabel
,prevPageLabel
,firstPageLabel
,lastPageLabel
are now takingfalse
instead ofnull
for "no label" (samdark) - Chg #4911: Changed callback signature used in
yii\base\ArrayableTrait::fields()
fromfunction ($field, $model) {
tofunction ($model, $field) {
(samdark) - Chg #4955: Replaced callbacks with events for
ActiveForm
(qiangxue)- Removed
beforeValidate()
,beforeValidateAll()
,afterValidate()
,afterValidateAll()
,ajaxBeforeSend()
andajaxComplete()
fromActiveForm
. - Added
beforeValidate
,afterValidate
,beforeValidateAttribute
,afterValidateAttribute
,beforeSubmit
,ajaxBeforeSend
andajaxComplete
events toyii.activeForm
jQuery plugin.
- Removed
- Chg #5176:
ActiveFixture
will reset table in itsload()
method instead ofunload()
(qiangxue) - Chg: Replaced
clearAll()
andclearAllAssignments()
inyii\rbac\ManagerInterface
withremoveAll()
,removeAllRoles()
,removeAllPermissions()
,removeAllRules()
andremoveAllAssignments()
(qiangxue) - Chg: Added
$user
as the first parameter ofyii\rbac\Rule::execute()
(qiangxue) - Chg:
yii\grid\DataColumn::getDataCellValue()
visibility is nowpublic
to allow accessing the value from a GridView directly (cebe) - Chg:
yii\data\ActiveDataProvider::$query
will not be modified directly with pagination and sorting anymore so it will be reuseable (cebe) - Chg: Removed
yii\rest\ActiveController::$transactional
property and connected functionality (samdark) - Chg: Changed the default value of the
keyPrefix
property of cache components to be null (qiangxue) - Chg: Added
prefix
column toyii\log\DbTarget
to have the same amount of information logged as in files and emails (cebe) - Chg: Use
limit(null)
instead oflimit(-1)
in migration controller to be compatible to more backends (cebe) - Chg:
yii\web\Request::cookieValidationKey
must be explicitly specified for each application that wants to use cookie validation (qiangxue) - Chg: Added
yii\composer\Installer::postCreateProject()
and modified the syntax of calling installer methods in composer.json (qiangxue) - Chg: When an ID is found to be in both
Application::controllerMap
andApplication::modules
, the former will take precedence (qiangxue) - Chg:
yii\helpers\Html::activeCheckbox()
andactiveRadio()
will generate labels by default using the corresponding attribute labels (qiangxue) - New #1280: Gii can now be run from command line (schmunk42, cebe, qiangxue)
- New #3911: Added
yii\behaviors\SluggableBehavior
that fills the specified model attribute with the transliterated and adjusted version to use in URLs (creocoder) - New #4193: Added
yii\filters\Cors
CORS filter to allow Cross Origin Resource Sharing (pgaultier) - New #4945: Added
yii\test\ArrayFixture
(Ragazzo) - New: Added
yii\base\InvalidValueException
(qiangxue) - New: Added
yii\caching\ArrayCache
(cebe)
2.0.0-beta April 13, 2014
- Bug #1265: AssetController does not override 'js' and 'css' for compressed bundles (klimov-paul)
- Bug #1326: The
visible
setting forDetailView
doesn't work as expected (qiangxue) - Bug #1412:
FileValidator
andImageValidator
still triggeruploadRequired
error in some case whenskipOnEmpty
is true and no upload is provided (qiangxue) - Bug #1446: Logging while logs are processed causes infinite loop (qiangxue)
- Bug #1497: Localized view files are not correctly returned (mintao)
- Bug #1500: Log messages exported to files are not separated by newlines (omnilight, qiangxue)
- Bug #1504: Debug toolbar isn't loaded successfully in some environments when xdebug is enabled (qiangxue)
- Bug #1509: The SQL for creating Postgres RBAC tables is incorrect (qiangxue)
- Bug #1545: It was not possible to execute db Query twice, params where missing (cebe)
- Bug #1550: fixed the issue that JUI input widgets did not property input IDs.
- Bug #1654: Fixed the issue that a new message source object is generated for every new message being translated (qiangxue)
- Bug #1582: Error messages shown via client-side validation should not be double encoded (qiangxue)
- Bug #1591: StringValidator is accessing undefined property (qiangxue)
- Bug #1597: Added
enableAutoLogin
to basic and advanced project templates so "remember me" now works properly (samdark) - Bug #1631: Charset is now explicitly set to UTF-8 when serving JSON (samdark)
- Bug #1635:
yii\jui\SliderInput
wasn't properly initialized (samdark) - Bug #1659: MSSQL doesn't support limit (Ana1oliy)
- Bug #1686: ActiveForm is creating duplicated messages in error summary (qiangxue)
- Bug #1704: Incorrect regexp is used in
Inflector::camelize()
(qiangxue) - Bug #1710: OpenId auth client does not request required attributes correctly (klimov-paul)
- Bug #1798: Fixed label attributes for array fields (zhuravljov)
- Bug #1800: Better check for
$_SERVER['HTTPS']
inyii\web\Request::getIsSecureConnection()
(ginus, samdark) - Bug #1812: Hide potential warning message due to race condition occurring to
Session::regenerateID()
call (qiangxue) - Bug #1827: Debugger toolbar is loaded twice if an action is calling
run()
to execute another action (qiangxue) - Bug #1868: Added ability to exclude tables from FixtureController apply/clear actions. (Ragazzo)
- Bug #1869: Fixed tables clearing.
TRUNCATE
changed toDELETE
to avoid postgresql tables checks (and truncating all tables) (Ragazzo) - Bug #1870: Validation errors weren't properly translated when using clientside validation (samdark)
- Bug #1930: Fixed domain based URL matching for website root (samdark)
- Bug #1937: Fixed wrong behavior or advanced app's
init --env
when called without parameter actually specified (samdark) - Bug #1959:
Html::activeCheckbox
wasn't respecting custom values for checked/unchecked state (klevron, samdark) - Bug #1965:
Controller::findLayoutFile()
returns incorrect file path when layout name starts with a slash (qiangxue) - Bug #1992: In module scenario that use 'site/captcha' will get wrong refreshUrl (callmez)
- Bug #1993: afterFind event in AR is now called after relations have been populated (cebe, creocoder)
- Bug #1998: Unchecked required checkbox never pass client validation (klevron)
- Bug #2084: AssetController adjusting CSS URLs declared at same line fixed (klimov-paul)
- Bug #2091:
QueryBuilder::buildInCondition()
fails to handle array not starting with index 0 (qiangxue) - Bug #2160: SphinxQL does not support OFFSET (qiangxue, romeo7)
- Bug #2209: When I18N message translation is missing source language is now used for formatting (samdark)
- Bug #2212:
yii\gridview\DataColumn
generates incorrect labels when used with nosql DB and there is no data (qiangxue) - Bug #2298: Fixed the bug that Gii controller generator did not allow digit in the controller ID (qiangxue)
- Bug #2303: Fixed the bug that
yii\base\Theme::pathMap
did not support dynamic update with path aliases (qiangxue) - Bug #2324: Fixed QueryBuilder bug when building a query with "query" option (mintao)
- Bug #2399: Fixed the bug that AssetBundle did not handle relative URLs correctly (qiangxue)
- Bug #2502: Unclear error message when
$_SERVER['DOCUMENT_ROOT']
is empty (samdark) - Bug #2519: MessageSource removed translation messages when event handler was bound to
missingTranslation
-event (cebe) - Bug #2527: Source language for
app
message category was alwaysen
no matter which applicationsourceLanguage
was used (samdark) - Bug #2559: Going back on browser history breaks GridView filtering with
Pjax
(tonydspaniard) - Bug #2571: Fixed the bug that batchInsert will fail for SQLite if the values contain null or boolean false (qiangxue)
- Bug #2607:
yii message
tool wasn't updatingmessage
table (mitalcoi) - Bug #2624: Html::textArea() should respect "name" option. (qiangxue)
- Bug #2653: Fixed the bug that unsetting an unpopulated AR relation would trigger exception (qiangxue)
- Bug #2681: Fixed the bug of php build-in server https://bugs.php.net/bug.php?id=66606 (dizews)
- Bug #2683: Fixed the bug that batchInsert will fail for MySQL if the values contain boolean false (qiangxue)
- Bug #2695: Fixed the issue that
FileValidator::isEmpty()
always returns true for validate multiple files (ZhandosKz) - Bug #2739: Fixed the issue that
CreateAction::run()
was using obsoleteController::createAbsoluteUrl()
method (tonydspaniard) - Bug #2740: Fixed the issue that
CaptchaAction::run()
was using obsoleteController::createUrl()
method (tonydspaniard) - Bug #2760: Fixed GridView
filterUrl
parameters (qiangxue, AlexGx) - Bug #2834: When overriding i18n translation sources from config using
app*
oryii*
defaultapp
andyii
sources were not removed (samdark) - Bug #2848: Individual queries should be enclosed within parenthesis in a UNION query (qiangxue)
- Bug #2862: Using
DbCache
while enabling schema caching may cause infinite loops (qiangxue) - Bug #3052: Fixed the issue that cache dependency data is not reused when
reusable
is set true (qiangxue) - Bug #3443: Fixed
yii\bootstrap\Nav
andyii\bootstrap\Dropdown
were generating wrong ids for submenus (arturf) - Bug #3691: Fixed the issue that
CookieCollection::has
always returns false for cookies from browser (sonicgd) - Bug #4212: MSSQL query builder should not generate the
ORDER BY
clause when it is not needed (qiangxue) - Bug #4232:
TableSchema::sequenceName
for PostgreSQL should remove the enclosing quotes (katzz0, qiangxue) - Bug #4697: MSSQL query builder does not work for newer MSSQL versions when LIMIT is used without ORDER BY (qiangxue)
- Bug: Fixed
Call to a member function registerAssetFiles() on a non-object
in case of wrongsourcePath
for an asset bundle (samdark) - Bug: Fixed incorrect event name for
yii\jui\Spinner
(samdark) - Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe)
- Bug: Fixed issue with tabular input on ActiveField::radio() and ActiveField::checkbox() (jom)
- Bug: Fixed the issue that query cache returns the same data for the same SQL but different query methods (qiangxue)
- Bug: Fixed URL parsing so it's now properly giving 404 for URLs like
http://example.com//////site/about
(samdark) - Bug: Fixed
HelpController::getModuleCommands
issue where it attempts to scan a module's controller directory when it doesn't exist (jom) - Bug: Fixed an issue with FileHelper and not accessible directories which resulted in endless loop (cebe)
- Bug: Fixed
$model->load($data)
returnedtrue
if$data
andformName
were empty (samdark) - Bug: Fixed issue with
ActiveRelationTrait
preventingActiveQuery
from clearing events and behaviors on clone (jom) - Bug:
Query::queryScalar
wasn't makingSELECT DISTINCT
queries subqueries (jom) - Bug: Fixed use
$files
instead ofself::$_files[$key]
to allow inheritance (pgaultier) - Enh #46: Added Image extension based on Imagine library (tonydspaniard)
- Enh #364: Improve Inflector::slug with
intl
transliteration. Improved transliteration char map. (tonydspaniard) - Enh #497: Removed
\yii\log\Target::logUser
and added\yii\log\Target::prefix
to support customizing message prefix (qiangxue) - Enh #499: Decoupled
Rule
from RBACItem
(samdark, qiangxue) - Enh #797: Added support for validating multiple columns by
UniqueValidator
andExistValidator
(qiangxue) - Enh #802: Added support for retrieving sub-array element or child object property through
ArrayHelper::getValue()
(qiangxue, cebe) - Enh #938: Added
yii\web\View::renderAjax()
andyii\web\Controller::renderAjax()
(qiangxue) - Enh #1293: Replaced Console::showProgress() with a better approach. See Console::startProgress() for details (cebe)
- Enh #1406: DB Schema support for Oracle Database (p0larbeer, qiangxue)
- Enh #1437: Added ListView::viewParams (qiangxue)
- Enh #1467: Added support for organizing controllers in subdirectories (qiangxue)
- Enh #1469: ActiveRecord::find() now works with default conditions (default scope) applied by createQuery (cebe)
- Enh #1476: Add yii\web\Session::handler property (nineinchnick)
- Enh #1499: Added
ActionColumn::controller
property to support customizing the controller for handling GridView actions (qiangxue) - Enh #1523: Query conditions now allow to use the NOT operator (cebe)
- Enh #1535: Improved
yii\web\User
to start session only when needed. Also prepared it for use without session. (qiangxue) - Enh #1562: Added
yii\bootstrap\Tabs::linkOptions
(kartik-v) - Enh #1572: Added
yii\web\Controller::createAbsoluteUrl()
(samdark) - Enh #1579: throw exception when the given AR relation name does not match in a case sensitive manner (qiangxue)
- Enh #1581: Added
ActiveQuery::joinWith()
andActiveQuery::innerJoinWith()
to support joining with relations (qiangxue) - Enh #1585: added schema parameter to createAbsoluteUrl() to force 'http' or 'https' (cebe)
- Enh #1601: Added support for tagName and encodeLabel parameters in ButtonDropdown (omnilight)
- Enh #1611: Added
BaseActiveRecord::markAttributeDirty()
(qiangxue) - Enh #1633: Advanced project template now works with MongoDB by default (samdark)
- Enh #1634: Use masked CSRF tokens to prevent BREACH exploits (qiangxue)
- Enh #1641: Added
BaseActiveRecord::updateAttributes()
(qiangxue) - Enh #1646: Added postgresql
QueryBuilder::checkIntegrity
andQueryBuilder::resetSequence
(Ragazzo) - Enh #1645: Added
Connection::$pdoClass
property (Ragazzo) - Enh #1645: Added support for nested DB transactions (qiangxue)
- Enh #1681: Added support for automatically adjusting the "for" attribute of label generated by
ActiveField::label()
(qiangxue) - Enh #1706: Added support for registering a single JS/CSS file with dependency (qiangxue)
- Enh #1773: keyPrefix property of Cache is not restricted to alnum characters anymore, however it is still recommended (cebe)
- Enh #1809: Added support for building "EXISTS" and "NOT EXISTS" query conditions (abdrasulov)
- Enh #1839: Added support for getting file extension and basename from uploaded file (anfrantic)
- Enh #1852: ActiveRecord::tableName() now returns table name using DbConnection::tablePrefix (creocoder)
- Enh #1881: Improved
yii\bootstrap\NavBar
withcontainerOptions
,innerContainerOptions
andrenderInnerContainer
(creocoder) - Enh #1894: The path aliases
@webroot
and@web
are now available right after the application is initialized (qiangxue) - Enh #1921: Grid view ActionColumn now allow to name buttons like
{controller/action}
(creocoder) - Enh #1973:
yii message/extract
is now able to generate.po
files (SergeiKutanov, samdark) - Enh #1984: ActionFilter will now mark event as handled when action run is aborted (cebe)
- Enh #2002: Added filterWhere() method to yii\db\Query to allow easy addition of search filter conditions by ignoring empty search fields (samdark, cebe)
- Enh #2003: Added
filter
property toExistValidator
andUniqueValidator
to support adding additional filtering conditions (qiangxue) - Enh #2008:
yii message/extract
is now able to save translation strings to database (kate-kate, samdark) - Enh #2043: Added support for custom request body parsers (danschmidt5189, cebe)
- Enh #2051: Do not save null data into database when using RBAC (qiangxue)
- Enh #2054: Added support for using custom application configuration with the console command runner (qiangxue)
- Enh #2079:
- i18n now falls back to
en
fromen-US
if message translation isn't found (samdark) - View now falls back to
en
fromen-US
if file not found (samdark) - Default
sourceLanguage
andlanguage
are nowen
(samdark)
- i18n now falls back to
- Enh #2101: Gii is now using model labels when generating search (thiagotalma)
- 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) - Enh #2103: Renamed AccessDeniedHttpException to ForbiddenHttpException, added new commonly used HTTP exception classes (danschmidt5189)
- Enh #2124: Added support for UNION ALL queries (Ivan Pomortsev, iworker)
- Enh #2132: Allow url of CSS and JS files registered in yii\web\View to be url alias (cebe)
- Enh #2144:
Html
helper now supports rendering "data" attributes (qiangxue) - Enh #2156:
yii migrate
now automatically createsmigrations
directory if it does not exist (samdark) - Enh #2211: Added typecast database types into php types (dizews)
- Enh #2240: Improved
yii\web\AssetManager::publish()
,yii\web\AssetManager::getPublishedPath()
andyii\web\AssetManager::getPublishedUrl()
to support aliases (vova07) - Enh #2325: Adding support for the
X-HTTP-Method-Override
header inyii\web\Request::getMethod()
(pawzar) - Enh #2364: Take into account current error reporting level in error handler (gureedo)
- Enh #2387: Added support for fetching data from database in batches (nineinchnick, qiangxue)
- Enh #2392: Added
addCssStyle()
,removeCssStyle()
,cssStyleFromArray()
andcssStyleToArray()
toHtml
(qiangxue, kartik-v, Alex-Code) - Enh #2406: Added support for conditional validation (drenty, cebe, qiangxue)
- Enh #2411: Added Gii extension generator (schmunk42)
- Enh #2415: Added support for inverse relations (qiangxue)
- Enh #2417: Added possibility to set
dataType
for$.ajax
call in yii.activeForm.js (Borales) - Enh #2436: Label of the attribute, which looks like
relatedModel.attribute
, will be received from the related model if it available (djagya) - Enh #2490:
yii\db\Query::count()
and other query scalar methods now properly handle queries with GROUP BY clause (qiangxue) - Enh #2491: Added support for using the same base class name of search model and data model in Gii (qiangxue)
- Enh #2499: Added ability to downgrade migrations by their absolute apply time (resurtm, gorcer)
- Enh #2525: Added support for formatting file sizes with
yii\base\Formatter
(VinceG) - Enh #2526: Allow for null values in batchInsert (skotos)
- Enh #2646: Added support for specifying hostinfo in the pattern of a URL rule (qiangxue)
- Enh #2661: Added boolean column type support for SQLite (qiangxue)
- Enh #2670: Changed
console\Controller::globalOptions()
tooptions($actionID)
to (make it possible to) differentiate options per action (hqx) - Enh #2714: Added support for formatting time intervals relative to the current time with
yii\base\Formatter
(drenty) - Enh #2726: Added
yii\db\ActiveRecord::loadDefaultValues()
that fills default values from DB schema (samdark) - Enh #2729: Added
FilterValidator::skipOnArray
so that filters liketrim
will not fail for array inputs (qiangxue) - Enh #2735: Added support for
DateTimeInterface
inFormatter
(ivokund) - Enh #2756: Added support for injecting custom
isEmpty
check for all validators (qiangxue) - Enh #2775: Added
yii\base\Application::bootstrap
andyii\base\BootstrapInterface
to support running bootstrap classes when starting an application (qiangxue) - Enh #2892: ActiveRecord dirty attributes are now reset after call to
afterSave()
so information about changed attributes is available inafterSave
-event (cebe) - Enh #2910: Added
Application::end()
(qiangxue) - Enh: Added support for using arrays as option values for console commands (qiangxue)
- Enh: Added
favicon.ico
androbots.txt
to default project templates (samdark) - Enh: Added
Widget::autoIdPrefix
to support prefixing automatically generated widget IDs (qiangxue) - Enh: Support for file aliases in console command 'message' (omnilight)
- Enh: Sort and Pagination can now create absolute URLs (cebe)
- Enh: Added support for using array-typed arguments for console commands (qiangxue)
- Enh: Added support for installing packages conforming to PSR-4 standard (qiangxue)
- Enh: Better exception message when class cannot be loaded (samdark)
- Enh:
init
of advanced application now allows to specify answer for overwriting files viainit --overwrite=n
(samdark) - Enh: Added
TableSchema::fullName
property (qiangxue) - Enh: yii\codeception\TestCase now supports loading and using fixtures via Yii fixture framework (qiangxue)
- Enh: Added ability to get incoming headers (dizews)
- Enh: Added
beforeRun()
andafterRun()
toyii\base\Action
(qiangxue) - Enh: Added support for using timeZone with
yii\base\Formatter
(dizews) - Enh: Added
yii\web\View::POS_LOAD
(qiangxue) - Enh: Added
yii\web\Response::clearOutputBuffers()
(qiangxue) - Enh: Improved
QueryBuilder::buildLimit()
to support big numbers (qiangxue) - Enh: Added support for building SQLs with sub-queries (qiangxue)
- Enh: Added
Pagination::getLinks()
(qiangxue) - Enh: Added support for reading page size from query parameters by
Pagination
(qiangxue) - Enh: LinkPager can now register relational link tags in the html header for prev, next, first and last page (cebe)
- Enh: Added
yii\web\UrlRuleInterface
andyii\web\CompositeUrlRule
(qiangxue) - Enh: Added
yii\web\Request::getAuthUser()
andgetAuthPassword()
(qiangxue) - Enh: Added summaryOptions and emptyTextOptions to BaseListView (johonunu)
- Enh: Implemented Oracle column comment reading from another schema (gureedo, samdark)
- Enh: Added support to allow an event handler to be inserted at the beginning of the existing event handler list (qiangxue)
- Enh: Improved action filter and action execution flow by supporting installing action filters at controller, module and application levels (qiangxue)
- Enh: Added
isAssociative()
andisIndexed()
toyii\helpers\ArrayHelper
(qiangxue) - Enh: Added
addSelect
toyii\db\Query
(Alex-Code) - Enh: Added ODBC support in
yii\db\Connection
(nineinchnick, resurtm) - Chg #47: Changed Markdown library to cebe/markdown and adjusted Markdown helper API (cebe)
- Chg #735: Added back
ActiveField::hiddenInput()
(qiangxue) - Chg #1186: Changed
Sort
to use comma to separate multiple sort fields and use negative sign to indicate descending sort (qiangxue) - Chg #1519:
yii\web\User::loginRequired()
now returns theResponse
object instead of exiting the application (qiangxue) - Chg #1564: Removed
yii\web\Session::autoStart
and addedhasSessionId
. Session will be automatically started when accessing session data (qiangxue) - Chg #1586:
QueryBuilder::buildLikeCondition()
will now escape special characters and use percentage characters by default (qiangxue) - Chg #1610:
Html::activeCheckboxList()
andHtml::activeRadioList()
will submit an empty string if no checkbox/radio is selected (qiangxue) - Chg #1643: Added default value for
Captcha::options
(qiangxue) - Chg #1796: Removed
yii\base\Controller::getActionParams()
(samdark) - Chg #1835:
CheckboxColumn
now renders checkboxes whose values are the corresponding data key values (qiangxue) - Chg #1821: Changed default values for yii\db\Connection username and password to null (cebe)
- Chg #1844:
Response::sendFile()
and other file sending methods will not send the response (qiangxue) - Chg #1852: DbConnection::tablePrefix default value now 'tbl_' (creocoder)
- Chg #1958:
beforeSubmit
inyii.activeform
is now executed after validation and before form submission (6pblcb) - Chg #2025: Removed ability to declare scopes in ActiveRecord (samdark)
- Chg #2043:
- Renamed
yii\web\Request::acceptedLanguages
toacceptableLanguages
(qiangxue) - Removed
yii\web\Request::getPost()
,getPut()
,getDelete()
,getPatch()
in favor ofgetBodyParam()
(cebe) - Renamed
yii\web\Request::get()
togetQueryParams()
andgetRestParams()
togetBodyParams()
(cebe) - Added
yii\web\Request::get($name = null, $defaultValue = null)
andyii\web\Request::post($name = null, $defaultValue = null)
(samdark)
- Renamed
- Chg #2059: Implemented git-flavored file excluding/filtering for
FileHelper
(nineinchnick) - Chg #2063: Removed
yii\web\Request::acceptTypes
and renamedyii\web\Request::acceptedContentTypes
toacceptableContentTypes
(qiangxue) - Chg #2103: Renamed AccessDeniedHttpException to ForbiddenHttpException (danschmidt5189)
- Chg #2146: Removed
ActiveRelation
class andActiveRelationInterface
, moved the functionality toActiveQuery
. All relational queries are now directly served byActiveQuery
allowing to use custom scopes in relations and also to declare arbitrary queries as relations. Also removedActiveRecordInterface::createActiveRelation()
(cebe) - Chg #2157: The '*' category pattern will match all categories that do not match any other patterns listed in
I18N::translations
(qiangxue, Ragazzo) - Chg #2161: Added ability to use
return
inWidget::run
(samdark) - Chg #2173: Removed
StringHelper::diff()
, Movedphpspec/php-diff
dependency fromyiisoft/yii2
toyiisoft/yii2-gii
(samdark) - Chg #2175: QueryBuilder will now append UNION statements at the end of the primary SQL (qiangxue)
- Chg #2210: Mysql driver will now treat
tinyint(1)
as integer instead of boolean (qiangxue) - Chg #2248: Renamed
yii\base\Model::DEFAULT_SCENARIO
toyii\base\Model::SCENARIO_DEFAULT
(samdark) - Chg #2281: Renamed
ActiveRecord::create()
topopulateRecord()
and changed signature. This method will not call instantiate() anymore (cebe) - Chg #2405: The CSS class of
MaskedInput
now defaults toform-control
(qiangxue) - Chg #2426: Changed URL creation method signatures to be consistent (samdark)
- Chg #2516: Moved error handling from application to ErrorHandler class and fixed problems with HTTP Exception response code (cebe)
Yii::$app->exception
has now moved toYii::$app->errorHandler->exception
yii\base\ErrorHandler
was split intoyii\web\ErrorHandler
andyii\console\ErrorHandler
- Chg #2544: Changed
DetailView
'sname:format:label
toattribute:format:label
to matchGridView
(samdark) - Chg #2603:
yii\base\ErrorException
now extends\ErrorException
(samdark) - Chg #2629:
Module::controllerPath
is now read only, and all controller classes must be namespaced underModule::controllerNamespace
. (qiangxue) - Chg #2630: API changes for URLs generation (samdark, qiangxue, cebe)
- Added
yii\helpers\Url
. - Removed
yii\helpers\Html::url
, useyii\helpers\Url::to
instead. - Removed
yii\web\Controller::createUrl
andyii\web\Controller::createAbsoluteUrl
, useyii\helpers\Url::toRoute
instead. - Removed
yii\web\Controller::getCanonicalUrl
, useyii\helpers\Url::canonical
instead.
- Added
- Chg #2691: Null parameters will not be included in the generated URLs by
UrlManager
(gonimar, qiangxue) - Chg #2734:
FileCache::keyPrefix
defaults to empty string now (qiangxue) - Chg #2796: Removed
Application::preload
in favor ofApplication::bootstrap
(qiangxue) - Chg #2816: Changed default date and time format of
yii\base\Formatter
toY-m-d
andH:i:s
(qiangxue) - Chg #2911: Removed
tbl_
default for table prefix (samdark) - Chg #2912: Relative view files will be looked for under the directory containing the view currently being rendered (qiangxue)
- Chg #2955: Changed the signature of ActiveQuery constructors and replaced
ActiveRecord::createQuery()
withfind()
to simplify customizing ActiveQuery classes (qiangxue) - Chg #2999: Added
findOne()
andfindAll()
to replace the usage ofActiveRecord::find($condition)
. (samdark, qiangxue) - Chg #4204:
yii\web\Request::getUserIP()
will return null if it cannot detect user IP address (qiangxue) - Chg #4622: Simplified the way of creating a Faker fixture template file (qiangxue)
- Chg: Renamed
yii\jui\Widget::clientEventsMap
toclientEventMap
(qiangxue) - Chg: Renamed
ActiveRecord::getPopulatedRelations()
togetRelatedRecords()
(qiangxue) - Chg: Renamed
attributeName
andclassName
totargetAttribute
andtargetClass
forUniqueValidator
andExistValidator
(qiangxue) - Chg: Added
yii\widgets\InputWidget::options
(qiangxue) - Chg: Changed the signature of
urlCreator
and button creators foryii\gridview\ActionColumn
(qiangxue) - Chg: Updated HTMLPurified dependency to
4.6.*
. - Chg: Changed Yii autoloader to support loading PSR-4 classes only (i.e. PEAR-styled classes not supported anymore) (qiangxue)
- Chg: Changed the directory structure according to PSR-4. You have to update your application
index.php
,index-test.php
andyii
files to point to the new location ofYii.php
(qiangxue, cebe) - Chg: Advanced app template: moved database connection DSN, login and password to
-local
config not to expose it to VCS (samdark) - Chg: Renamed
yii\web\Request::acceptedLanguages
toacceptableLanguages
(qiangxue) - Chg: Removed implementation of
Arrayable
fromyii\Object
(qiangxue) - Chg: The scripts in asset bundles are now registered in
View
at the end ofendBody()
. It was done inendPage()
previously (qiangxue) - Chg: Renamed
csrf-var
tocsrf-param
for CSRF header name (Dilip) - Chg: The directory holding email templates is renamed from
mails
tomail
(qiangxue) - Chg: Renamed properties
fooVar
tofooParam
for various classes (qiangxue)- Renamed
ActiveForm::ajaxVar
toajaxParam
- Renamed
Pagination::pageVar
topageParam
- Renamed
Sort::sortVar
tosortParam
- Renamed
yii\web\Request::csrfVar
tocsrfParam
- Renamed
yii\web\Request::methodVar
tomethodParam
- Renamed
UrlManager::routeVar
torouteParam
- Renamed
yii\web\Session::flashVar
toflashParam
- Renamed
yii\web\User::idVar
toidParam
- Renamed
yii\web\User::authTimeoutVar
toauthTimeoutParam
- Renamed
yii\web\User::returnUrlVar
toreturnUrlParam
- Renamed
- Chg: Added
View::viewFile
and removedViewEvent::viewFile
(qiangxue) - Chg: Changed
Controller::afterAction()
,Module::afterAction()
andActionFilter::afterAction()
to pass$result
by value instead of reference (qiangxue) - Chg:
yii\base\Extension::init()
is renamed tobootstrap()
(qiangxue) - Chg:
getComponent()
andsetComponent()
inApplication
andModule
are renamed toget()
andset()
respectively. (qiangxue) - Chg: The signature of
Yii::createObject()
is changed. Constructor parameters must be passed as the second parameter. (qiangxue) - Chg:
Yii::$objectConfig
is removed. You should useYii::$container->set()
to configure default settings of classes. (qiangxue) - Chg: Removed
yii\grid\Column::getDataCellContent()
and renamedyii\grid\DataColumn::getDataCellContent()
toyii\grid\DataColumn::getDataCellValue()
(cebe) - Chg:
yii\log\Logger
is split intoyii\log\Logger
andyii\log\Dispatcher
. (qiangxue) - Chg: Moved all filter classes to namespace
yii\filters
(qiangxue) - Chg: Re-implemented RBAC by following more closely to the original NIST RBAC model. Dropped
yii\rbac\PhpManager
. (qiangxue) - Chg: Renamed
yii\web\User::checkAccess()
toyii\web\User::can()
(qiangxue) - New #66: Auth client library OpenId, OAuth1, OAuth2 clients (klimov-paul)
- New #303: Added built-in support for REST API (qiangxue)
- New #503: Added
yii\di\Container
andyii\di\ServiceLocator
(qiangxue) - New #706: Added
yii\widgets\Pjax
and enhancedGridView
to work withPjax
to support AJAX-update (qiangxue) - New #1393: Codeception testing framework integration (Ragazzo)
- New #1438: MongoDB integration ActiveRecord and Query (klimov-paul)
- New #1956: Implemented test fixture framework (qiangxue)
- New #2034: Added
ContentNegotiator
to support response format and language negotiation (qiangxue) - New #2149: Added
yii\base\DynamicModel
to support ad-hoc data validation (qiangxue) - New #2360: Added
AttributeBehavior
andBlameableBehavior
, and renamedAutoTimestamp
toTimestampBehavior
(lucianobaraglia, qiangxue) - New #2932: Added
yii\web\ViewAction
that allow you to render views based on GET parameter (samdark) - New #2998: Added
framework\log\SyslogTarget
that is able to write log to syslog (miramir, samdark) - New #3029: Added
yii\bootstrap\ActiveForm
andyii\bootstrap\ActiveField
(mikehaertl) - New #4640: Added
yii\widgets\ActiveForm::beginField()
andendField()
(qiangxue) - New: Yii framework now comes with core messages translated into 26 languages, many thanks to all our translators!
- New: Added
yii\codeception\DbTestCase
(qiangxue) - New: Added
yii\web\GroupUrlRule
(qiangxue) - New: Added
yii\filters\RateLimiter
(qiangxue) - New: Added various authentication methods, including
HttpBasicAuth
,HttpBearerAuth
,QueryParamAuth
, andCompositeAuth
(qiangxue) - New: Added
HtmlResponseFormatter
andJsonResponseFormatter
(qiangxue)
2.0.0-alpha December 1, 2013
- Initial release.
- Official extensions released in this version:
-
Elasticsearch integration: ActiveRecord and Query
-
Redis integration: ActiveRecord, Cache and Session
-
Sphinx integration: ActiveRecord and Query