each() and batch() (alexkart)i18n_init migration for MSSQL (alexkart)migrate/create when specifying default values with colons and adding multiple columns (alexkart)migrate/fresh (alexkart)DISTINCT ON queries (brandonkelly)UniqueValidator to work with Active Record having joinWith() in its find() (garthpmurray)\yii\validators\DateValidator::$strictDateFormat to enable strict validation (alexkart)\yii\base\Action is used (alexkart)\yii\log\Target::collect (alexkart)Content-Disposition header when using \yii\web\Response::sendFile (alexkart)\yii\filters\AccessRule::$roleParams (alexkart)yii\db\Connection::addSelect() (brandonkelly)yii\db\Connection::quoteColumnName() (brandonkelly)yii\db\Connection::quoteTableName() (brandonkelly)sameSite support for yii\web\Cookie and yii\web\Session::cookieParams (rhertogh)\yii\widgets\ActiveField::widget (alexkart)alterColumn() to accept properly ColumnSchemaBuilder definition of column (bizley)defaultValue in BlameableBehavior for console app (evil1)yii\filters\Cors::prepareHeaders() now accepts Access-Control-Allow-Headers in preflight response (georgezim85)yii\helpers\FileHelper::normalizePath() now accepts stream wrappers (razvanphp)yii\filters\AccessRule::matchIP() user IP validation with netmask in rule (omentes)ActiveField::inputOptions were not used during some widgets rendering (GHopperMSK)yii\validators\EmailValidator::$checkDNS tells that every domain is correct on alpine linux (mikk150)./yii fixture/unload without arguments (ricpelo)yii\db\ActiveRecord::findOne() now accepts table aliases (albertborsos)yii\web\Response::$response when response code is 204 (mikk150)AssetManager timestamp appending when a file is published manually (GHopperMSK)via() using with callable (rugabarbo)yii\helpers\BaseInflector::camel2words() splitting ALLCAPS words on each letter (brandonkelly)DataProvider::totalCount (samdark)yii\helpers\BaseHtml methods inherits disabled HTML option if provided and set to true (bizley)checked option ignore in yii\helpers\BaseHtml::checkbox() (misantron)itemsOptions ignored in checkBoxList and radioList (s1lver)itemsOptions ignored in checkBoxList (s1lver)role attribute for active radio list (s1lver)yii\caching\DbCache concurrency issue when set values with the same key (rugabarbo)yii\web\JsonResponseFormatter output for null data (misantron)yii\i18n\Formatter methods asInteger, asDecimal, asPercent, and asCurrency outputs for very big numbers (bizley)yii\db\Schema::getTableMetadata cache refreshing (boboldehampsink)current_timestamp() for MariaDB >= 10.2.3 (rugabarbo, bloodrain777, Skinka)yii\helpers\BaseInflector::slug() is not removing substrings matching provided replacement from given string anymore (bizley)yii\log\Target::getTime() (rob006)yii\grid\RadioButtonColumn::$content and yii\grid\CheckboxColumn::$content (lesha724)yii.validation.js for attributes not in rules (mgrechanik)yii\db\ActiveQuery::viaTable() now throws InvalidConfigException, if query is not prepared correctly (silverfire)yii\helpers\Html::setActivePlaceholder (lesha724)yii\db\ActiveRecord::findOne() now accepts quoted table and column names using curly and square braces respectively (silverfire)X-Forwarded-Host header have multiple hosts separated with a comma (pgaultier)yii\filters\ContentNegotiator behavior when GET parameters contain an array (rugabarbo)jsonb field (lav45)char to varbinnary in MSSQL (vsivsivsi)yii\web\CookieCollection::has when an expiration param is set to 'until the browser is closed' (OndrejVasicek)IN condition builder for more than 1000 items (cebe)yii\test\InitDbFixture work with non-SQL DBMS (cebe)yii\db\pgsql\QueryBuilder::dropIndex() to prepend index name with schema name (wapmorgan)yii\helpers\BaseFileHelper sometimes returned wrong value (samdark, SilverFire, OndrejVasicek)yii\base\Widget to access stack property with self instead of static (yanggs07)yii\filters\Cors to not reflect origin header value when configured to wildcard origins (Jianjun Chen)yii\console\controllers\HelpController to work well in Windows environment (samdark)__isset() in BaseActiveRecord not catching errors (sammousa)yii\base\DynamicModel for checking exist property (vuongxuongminh)yii\helpers\BaseStringHelper where explode would not allow 0 as trim string (Thoulah)yii\db\Query::from() to respect yii\db\ExpressionInterface (noname007)migrate/fresh command runs (developeruz)yii\base\Model::getActiveValidators() to return correct validators for attribute on scenario (paweljankowiak06)InvalidConfigException in Debug mode (khvalov)yii\web\User::setIdentity() to clear access check cache while setting identity object to null (Izumi-kun)yii\base\Event:off() undefined index error when event handler does not match (razvanphp)yii\db\Transaction::begin() throws now NotSupportedException for nested transaction and DBMS not supporting savepoints (bizley)yii\di\Container::resolveCallableDependencies to support callable object (wi1dcard)\yii\widgets\ActiveForm::run() (carono)yii\db\ActiveQuery::prepare() to prevent populating already populated relation when another relation is requested with via (drlibra)yii\data\ActiveDataProvider::query property when ActiveDataProvider object is cloned (mgrechanik)$removeUnused option is on (Groonya)yii\helpers\ArrayHelper::merge (rustamwin)nl-NL durations used in yii\i18n\Formatter::asDuration() (alexeevdv)$filterOnFocusOut off (s1lver)yii\filters\ContentNegotiator was not setting Vary header to inform cache recipients (koteq, cebe, samdark)yii\console\controllers\MessageController::translator recognized object' methods and functions calls as identical sets of tokens (erickskrauch)yii\mutex\MysqlMutex to handle locks with names longer than 64 characters (rob006)yii\mutex\Mutex::acquire() no longer returns true if lock is already acquired by the same component in the same process (rob006)\yii\console\widgets\Table to render empty table when headers provided but no columns (damiandziaduch)yii\db\sqlite\Schema missing primary key constraint detection in case of INTEGER PRIMARY KEY (bizley)yii\web\DbSession::typecastFields() that caused problems with session overwriting (silverfire)yii\filters\PageCache incorrectly storing empty data in some cases (sammousa)utf8_encode() from Request::resolvePathInfo() (GHopperMSK)yii\db\Schema::getTableMetadata() (samdark)\yii\web\Request::getMethod() (silverfire)\yii\log\Target (silverfire)yii\behaviors\OptimisticLockBehavior (tunecino)yii\db\Command::executeResetSequence() to work with Oracle (CedricYii)yii\db\mysql\QueryBuilder added support fractional seconds for time types for MySQL >= 5.6.4 (konstantin-vl)ActiveQuery::getTableNameAndAlias() is now protected (s1lver)getTableNameAndAlias() (s1lver)yii\helpers\Inflector to work correctly with UTF-8 (silverfire)yii\mutex\FileMutex::$isWindows for Windows file shares on Unix guest machines (brandonkelly)yii\mutex\FileMutex::acquireLock() when $timeout is provided (rob006)$timeout in yii\mutex\PgsqlMutex::acquire() (rob006)yii\helpers\UnsetArrayValue, yii\helpers\ReplaceArrayValue object now can be restored after serialization using var_export() function (silvefire)yii\db\Command::logQuery() is now protected, extracted getCacheKey() from queryInternal() (drlibra)yii\console\controllers\MigrateController::useTablePrefix to true as default value (GHopperMSK)yii\db\ActiveRecord::findOne() now accepts column names prefixed with table name (cebe)yii\db\ActiveRecord::findOne(), ::findAll() (analitic1983, silverfire, cebe)yii\db\QueryBuilder::conditionClasses setter (silverfire)has-error CSS class assignment in yii\widgets\ActiveField when attribute name is prefixed with tabular index (FabrizioCaldarelli)null values handling for PostgresSQL arrays (silverfire)yii\db\Command::bindValues() (silverfire)yii\base\Component::off() not to throw an exception when handler does not exist (silverfire)yii\db\ArrayExpression, yii\db\JsonExpression (silverfire)yii\db\mysql\JsonExpressionBuilder to cast JSON explicitly (silverfire)Undefined offset error calling yii\helpers\Html::errorSummary() with the same error messages for different model attributes (FabrizioCaldarelli, silverfire)null attribute value for JSON and Array columns in MySQL and PostgreSQL (silverfire)yii\db\ArrayExpression for PostgreSQL (silverfire)session_name(): Cannot change session name when session is active errors (bscheshirwork, samdark)resetForm() method in yii.activeForm.js which used an undefined variable (Izumi-kun)yii\validators\ExistValidator to respect filter when targetRelation is used (developeruz)yii\filters\auth\HttpHeaderAuth to work correctly when pattern is set but was not matched (bboure)yii\db\ActiveRecord (developeruz)yii\db\Command::upsert() for Cubrid/MSSQL/Oracle (sergeymakinen)yii\console\controllers\BaseMigrateController for comment option from -c to -C due to conflict (Izumi-kun)Query::select() method (silverfire)yii\helpers\BaseHtml::setActivePlaceholder() to be consistent with activeLabel() (edwards-sj)disableJsonSupport to MySQL and PgSQL ColumnSchema, disableArraySupport and deserializeArrayColumnToArrayExpression to PgSQL ColumnSchema (silverfire)\Traversable in yii\db\ArrayExpression (silverfire)ArrayAccess support as validated value in yii\validators\EachValidator (silverfire)yii\db\ActiveQueryTrait to apply indexBy after relations population in order to prevent excess queries (sammousa, silverfire)yii\web\DbSession concurrency issues when writing and regenerating IDs (samdark, andreasanta, cebe)normalizePath for windows network shares that start with two backslashes (developeruz)yii\web\Request::getBodyParam() crashes on object type body params (klimov-paul)CURRENT_TIMESTAMP of MySQL datetime field (rossoneri)yii\validators\UniqueValidator for target classes with a default scope (laszlovl, developeruz)yii\validators\CompareValidator compareAttribute does not work if compareAttribute form ID has been changed (mikk150)yii\web\ErrorHandler displaying exception message in non-debug mode (samdark)yii\filters\HttpCache to work with PHP 7.2 (samdark)defaultSchema failure when masterConfig is used (lovezhl456)yii\db\Query::each() iterator key starts from 1 instead of 0 (Vovan-VE)yii\i18n\MessageFormatter tokenize pattern if pattern is invalid (uaoleg, developeruz)yii\web\HeadersAlreadySentException if headers were sent before web response (dmirogin)yii\db\Command::getRawSql() to properly replace expressions (hiscaler, samdark)yii\helpers\BaseUrl::current() (IceJOKER)yii\db\QueryBuilder::insert() to preserve passed params when building a INSERT INTO ... SELECT query for MSSQL, PostgreSQL and SQLite (sergeymakinen)yii\console\widgets\Table default value for getScreenWidth(), when Console::getScreenSize() can't determine screen size (webleaf)\yii\widgets\LinkPager removed tag from disabledListItemSubTagOptions (SDKiller)ArrayHelper::filter() to work properly with 0 in values (hhniao)yii\caching\DbCache so that getValues now behaves the same as getValue with regards to streams (edwards-sj)yii\filters\AccessRule::matchRole() (Izumi-kun)FileHelper::getExtensionsByMimeType() (samdark)yii\db\Query::from() does not work with yii\db\Expression (vladis84, silverfire, samdark)yii\db\Query::getTablesUsedInFrom() (vladis84, samdark)FormatConverter::convertDateIcuToPhp() now converts a ICU symbols to A (brandonkelly)yii\console\widgets\Table (dmrogin)yii\filters\RateLimiter::checkRateLimit() resulting in wrong X-Rate-Limit-Reset header value (bizley)yii\behaviors\AttributeTypecastBehavior::$attributeTypes auto-detection fails for rule, which specify attribute with '!' prefix (klimov-paul)accessChecker configuration error (developeruz)WWW-Authenticate header (developeruz)yii\db\ActiveRecord::refresh() method does not use an alias in the condition (vladis84)yii\web\Session settings could now be configured after session is started (StalkAlex, rob006, daniel1302, samdark)yii\widgets\ActiveForm::init() for call parent::init() (panchenkodv)yii\db\ActiveRecord::with() unable to use relation defined via attached behavior in case asArray is enabled (klimov-paul)yii\validators\NumberValidator incorrectly validate resource (developeruz)yii\web\User::getIdentity() returning null if an exception had been thrown when it was called previously (brandonkelly)yii\validators\DateValidator to respect time when the format property is set to UNIX Epoch format (silverfire, gayHacker)yii\filters\auth\HttpBasicAuth not to switch identity, when user is already authenticated and identity does not get changed (silverfire)yii\log\FileTarget not to create log directory during init process (alexeevdv)yii\helpers\BaseHtml::error() "errorSource" option to be able to customize errors display (yanggs07, developeruz, silverfire)yii\behaviors\BlameableBehavior for cases when the user is guest (dmirogin)yii\base\ArrayableTrait::toArray() now allows recursive $fields and $expand (bboure)\yii\helpers\Console::errorSummary() and \yii\helpers\Json::errorSummary() (developeruz)yii\i18n\Locale component having getCurrencySymbol() method (amarox, samdark)$attributeNames as a string for yii\base\Model validate() method (developeruz)Access-Control-Allow-Method header for the OPTIONS request (developeruz)variations to be a string for yii\filters\PageCache and yii\widgets\FragmentCache (schojniak, developeruz)$hiddenOptions in activeFileInput $options (HanafiAhmat)hash_equals in yii\base\Security::compareString() if available, throw exception if non-strings are compared (aotd1, samdark)BetweenColumnsCondition to build SQL condition like value BETWEEN col1 and col2 (silverfire)yii\helpers\StringHelper::matchWildcard() replacing usage of fnmatch(), which may be unreliable (klimov-paul)yii\web\UrlManager::addRules() (scriptcube, silverfire)yii\helpers\FileHelper::findDirectories() method (ArsSirek, developeruz)yii\behaviors\CacheableWidgetBehavior (Kolyunya)yii\db\QueryBuilder, yii\db\Command, and yii\db\Migration (sergeymakinen)yii\web\View::registerJsVar() method that allows registering JavaScript variables (Eseperio, samdark)yii\helpers\IpHelper (silverfire, cebe)yii\validators\UniqueValidator and yii\validators\ExistValidator (rossoneri, samdark)yii\web\Request, fixed getServerPort() usage (si294r, samdark)yii\behaviors\AttributeTypecastBehavior::typecastAfterSave property (littlefuntik, silverfire)dataDirectory property into BaseActiveFixture (leandrogehlen)safeUp() and safeDown() methods (Kolyunya)yii\db\SchemaBuilderTrait::tinyInteger() (rob006)yii\web\ErrorAction::$layout property to conveniently set layout from error action config (swods, cebe, samdark)Content-Type specification to yii\web\JsonResponseFormatter (Kolyunya)yii\db\Query anywhere, where yii\db\Expression was supported (silverfire)yii\web\Pjax widget does not prevent CSS files from sending anymore because they are handled by client-side plugin correctly (onmotion)yii\db\Query::select() and yii\db\Query::addSelect() now check for duplicate column names (wapmorgan)yii\db\QueryBuilder::buildColumns() to throw exception on invalid input (hiscaler)DynamicContentAwareInterface and DynamicContentAwareTrait (sergeymakinen)yii\web\ErrorHandler::$traceLine to allow opening file at line clicked in IDE (vladis84)yii\filters\auth\HttpHeaderAuth (bboure)--camelCase console options in --kebab-case (brandonkelly)--<option> <value> console option syntax (brandonkelly)help/list-action-options console command output for command options without a description (brandonkelly)openssl_pseudo_random_bytes, even if LibreSSL is available (sammousa)FileHelper::unlink() that works well under all OSes (samdark)Instance support for object property in DI container (kojit2009)yii\db\sqlite\Command (sergeymakinen)BaseConsole::updateProgress() (developeruz)yii\db\Query::cache() (hubeiwei, silverfire)yii\db\Command (sergeymakinen)yii\validators\FileValidator::$minFiles (vladis84)yii\rbac\BaseManager (deltacube)\yii\widgets\ActiveForm::$validationStateOn to be able to specify where to add class for invalid fields (samdark)yii\data\DataFilter can now handle lt,gt,lte and gte on yii\validators\DateValidator (mikk150)yii\db\ExpressionInterface support to yii\db\Command::batchInsert() (silverfire)yii\base\Model::formName() to prevent source path disclosure when form is represented by an anonymous class (silverfire)yii\filter\Cors so the preflight check isn't passed trough authentication filters (michaelarnauts, leandrogehlen)yii\grid\DataColumn boolean filter dropdown list values are now in reversed order (bizley)yii\base\BaseObject::className() in favor of native PHP syntax ::class, which does not trigger autoloading (brandonkelly)yii\BaseYii::powered() method (brandonkelly)yii\base\InvalidArgumentException and deprecated yii\base\InvalidParamException (brandonkelly)yii\BaseYii::debug() and deprecated yii\BaseYii::trace() (brandonkelly)yii\db\Schema::getSchemaNames() for MSSQL and added tests for all DBMSes (sergeymakinen)yii\db\Command::batchInsert() casting of double values correctly independent of the locale (cebe, leammas)yii\validators\FileValidator (developeruz)migrate/mark to mark history at the point of the base migration (cebe)yii\db\Command::batchInsert() (silverfire)autoRenewCookie is set to false (shirase, silverfire)yii\mutex\FileMutex (kidol)yii\mutex\FileMutex::$autoRelease having no effect due to missing base class initialization (kidol)yii\web\Request::getAuthUser(), getAuthPassword() to respect HTTP_AUTHORIZATION request header (silverfire)yii\helpers\FormatConverter::convertDatePhpToIcu() to handle escaped chars correctly (rob006)BaseActiveRecord::refresh() when the query adds a JOIN by default (cebe, ivankff)yii\db\ActiveRecord::joinWith() unable to use relation defined via attached behavior (ElisDN, klimov-paul)Query::column() when $indexBy is used with a JOIN (cebe)yii\console\controllers\CacheController when caches defined via a closure were not detected (Kolyunya)markUnused is false (samdark)validateAttribute() calls when scenarios() returns duplicate attributes (krukru)_slave of Connection to false instead of null in close method (rossoneri)yiiActiveForm do not trigger afterValidate event (arogachev)\Yii::$app->formatter if time not set (bscheshirwork)MySqlMutex, PgsqlMutex and OracleMutex now use useMaster() to ensure lock is aquired on the same DB server (cebe, ryusoft)yii\console\controllers\MessageController no longer outputs colorized filenames when console does not support text colorization (PowerGamer1)yii\log\Logger::calculateTimings() was not accepting messages with array tokens (bizley)yii\validators\UniqueValidator and yii\validators\ExistValidator to skip prefixes in case expressions are used (samdark)yii\console\UnknownCommandException is thrown for empty command (rob006)yiiActiveForm.events.afterValidateAttribute after updating attribute (dmirogin)\yii\db\QueryBuilder::buildNotCondition loses params when operand is \yii\db\Expression (Ni-san)yii\web\UrlManager with different ruleConfig configuration (dmirogin)ArrayHelper::merge behavior with null values for integer-keyed elements (dmirogin)yii\base\Application (dynasource)ContentNegotiator will always set one of the configured server response formats even if the client does not accept any of them (PowerGamer1)yii\rbac\Dbmanger::getPermissionsByUser by user with id equals 0 (dmirogin)yiiActiveForm (arogachev)yii\web\MultipartFormDataParser::$force option allowing to enforce parsing even on 'POST' request (klimov-paul)yii fixture/load (michaelarnauts)yii\validators\ExistValidator and yii\validators\UniqueValidator throw exception in case they are set for yii\db\ActiveRecord with $targetClass pointing to NOSQL ActiveRecord (klimov-paul)yii\widgets\BaseListView (panchenkodv)console\widgets\Table rendering when there's no data supplied (bscheshirwork)yii\db\Connection instance closes database connection (klimov-paul)yii\widgets\ActiveField::$options does not support 'class' option in array format (klimov-paul)yii\web\MultipartFormDataParser (olimsaidov)yii\helpers\Url::current() (rob006)yii\i18n\Formatter (developeruz)yii\helpers\ArrayHelper::setValue() (LAV45)yii\filters\AjaxFilter filter (dmirogin)yii\web\DbSession now relies on error handler to display errors (samdark)yii\i18n\Formatter::asWeight() and ::asLength() formatters (nineinchnick, silverfire)yii\console\widgets\Table to draw tables in console apps (pana1990, rob006, samdark, tonykor)yii\helpers\StringHelper and yii\validators\StringValidator independent of Yii::$app instance (cebe)yii\behaviors\SluggableBehaviour::skipOnEmpty option (andrewnester)yii\filters\AccessRule in order to be able to specify these separately (thyseus)$preserveNonEmptyValues property to the yii\behaviors\AttributeBehavior (Kolyunya)yii\web\Request (sammousa, cebe, silverfire)yii\db\Migration::$maxSqlOutputLength that allows limiting number of characters for outputting SQL (thiagotalma)yii message (developeruz)yii\web\Request::getOrigin() method that returns HTTP_ORIGIN of current CORS request (yyxx9988)yii\db\Migration::$compact as well as yii\console\controllers\BaseMigrateController::$compact to allow making the migration console output more compact (francislavoie)yii\web\UrlManager::setBaseUrl() now supports aliases (dmirogin)yii\rbac\DbManager::checkAccess() to avoid duplicate queries for user assignments (leandrogehlen, cebe, nineinchnick, ryusoft)yii\caching\CacheInterface to make custom cache extensions adoption easier (silverfire)yii\web\View::registerCsrfMetaTags() method that registers CSRF tags dynamically ensuring that caching doesn't interfere (RobinKamps)yii\base\Theme (vladis84)yii\db\Schema (sergeymakinen)yii\behaviors\AttributesBehavior that assigns values specified to one or multiple attributes of an AR object when certain events happen (bscheshirwork)ConsoleHelper (tom--, samdark, cebe)yii\log\Target::$enabled now supports callable value (dmirogin)InputWidget::renderInput() to move behavior described in InputWidget class docs to the class itself (cebe)yii\web\Response::defaultFormatters() now use the array syntax (brandonkelly)yii\widgets\LinkPager::$linkContainerOptions and possibility to override tag in yii\widgets\LinkPager::$options (dmirogin)Validator::validateAttributes() by calling attributeNames() only once (nicdnep)message/extract command (rob006)ActiveQuery::getTablesUsedInFrom() to Query to make the functionality available on the lower layer (cebe)yii.activeForm.js and yii\web\View to jQuery 3.0 compatible API (silverfire)\yii\log\Target (Ni-san)user_id column in auth_assignment table for performance reasons (bicf); on combining files with asset command to fix compiler failures (tanakahisateru)StringHelper::floatToString() to safely cast float values independent of the locale, also fixes some places in the framework that use it now (cebe)yii\base\Object in favor of yii\base\BaseObject for compatibility with PHP 7.2 (rob006, cebe, klimov-paul)yii\console\controllers\MessageController::extractMessagesFromTokens() is now protected (faenir)yii\widgets\MaskedInput is now registering its JavaScript clientOptions initialization code in head section (DaveFerger)+ character in attribute names (sammousa, kmindi)form attribute was not propagated to the hidden input of the checkbox (Kolyunya)yii\db\QueryBuilder (sergeymakinen)FileHelper::copyDirectory() were copying empty directories when using only or except options. Added an option to disable this (cebe)IN condition and more than 1000 parameters are working now (silverfire)yii\web\XmlResponseFormatter::buildXml() (sasha-ch)defaultRoles in yii\rbac\DbManager->getRolesByUser() results (developeruz)yii\base\Model::loadMultiple() returns true even if yii\base\Model::load() returns false (zvook)yii\db\Connection::$enableQueryCache caused infinite loop when the same connection was used for yii\caching\DbCache (michaelarnauts)SAVEPOINT LEVEL1 does not exist instead of deadlock exception (Vovan-VE)yii\web\UrlRule (rob006)reloadableScripts in yii.js allows 0 characters (arogachev)yii\db\Connection::useMaster() - exception within callback completely disables slaves (Vovan-VE)yii\i18n\Formatter::asTime() to process time-only values without time zone conversion (bizley)yii\web\UrlRule::createUrl() results in yii\web\UrlManager (rob006)yii\caching\MemCache::setValues() (masterklavi)applyFilter() function in yii.gridView.js to work correctly when params in filterUrl are indexed (SilverFire, arogachev)QueryBuilder::batchInsert() if $rows is \Generator (lav45)yii\console\controllers\MessageConstroller::saveMessagesToDb() to work on different DBMS correctly (silverfire)yii\web\CacheSession::destroySession() to work correctly when session is not written yet (silverfire, papalapa)yii\db\BaseActiveRecord::deleteAll() changes method signature declared by yii\db\ActiveRecordInterface::deleteAll() (klimov-paul)FixtureController to load fixtures from subdirectories (d1rtyf1ng3rs, silverfire)yii\db\mssql\QueryBuilder::checkIntegrity for all tables (boboldehampsink)yii\db\QueryBuilder::truncateTable should work consistent over all databases (boboldehampsink)yii\db\pgsql\QueryBuilder::resetSequence() was not quoted properly (boboldehampsink)yii\db\oci\Schema::setTransactionIsolationLevel() in Oracle (sergeymakinen)yii\db\QueryBuilder::prepareInsertSelectSubQuery() (sergeymakinen)['uncheck' => false] and ['label' => false] options for ActiveRadio and ActiveCheckbox were ignored (Alex-Code)yii\helpers\StringHelper::truncateHtml() skip extra tags at the end (sam002)- or _ in option name (pana1990)yii\widgets\Pjax now sends X-Pjax-Url header with response to fix redirect (wleona3, Faryshta)yii\validators\UniqueValidator to prefix attribute name with model's database table name (vladis84)yii\web\ErrorHandler and yii\web\ErrorAction not setting correct response code to response object before rendering error view (samdark)yii\behaviors\SluggableBehavior wasn't preserving immutable slug values (Kolyunya)getQueryParams() method in yii.js to correctly parse URL with question mark and no query parameters (vladdnepr)\yii\widgets\MaskedInput JavaScript by raising version required (samdark)yii\db\QueryBuilder to inherit subquery params when building a INSERT INTO ... SELECT query (sergeymakinen)yii\validators\ExistValidator and yii\validators\UniqueValidator (vladis84, samdark)Query::count() issue with orderBy (Alex-Code)yii\di\Instance::ensure() wasn't throwing an exception when $type is specified and $reference object isn't instance of $type (c-jonua)yii\log\DbTarget log messages where not written when a database transaction was rolled back, added support for cloning a yii\db\Connection (shirase, cebe)formatMessage() call in \yii\validators\IpValidator (Kolyunya)unserialize() error during RBAC rule retrieving from PostgreSQL DBMS (vsguts, nanodesu88, cebe)yii\db\pgsql\Schema::findViewNames() was skipping materialized views (insolita)yii\filters\AccessRule::matchIp() erroring in case IP is not defined under HHVM (Kolyunya)\ParseError (samdark)\yii\db\Command::createTable(), addForeignKey(), dropForeignKey(), addCommentOnColumn(), and dropCommentFromColumn() weren't refreshing the table cache on yii\db\Schema (brandonkelly)yii\console\controllers\FixtureController::$globalFixtures to contain valid class name (lynicidn)yii\web\UrlManager::createUrl() call my result multiple calls of yii\web\UrlRule::createUrl() for the same rule (rossoneri)yii\log\Logger::calculateTimings() (bizley)yii\filters\AccessControl now can be used without user component (bizley)yii\filters\AccessRule::$controllers (klimov-paul)yii\validators\DateValidator now resets $timestampAttribute value on empty validated attribute value (klimov-paul)yii\filters\AccessRule now allows passing parameters to the role checking function (fsateler, cebe, Faryshta)yii\console\Request::resolve() to prevent passing parameters, that begin from digits (silverfire)yii\web\UrlRule::createUrl() results in yii\web\UrlManager for rules with defaults (rob006)yii\db\Query::queryScalar() (Alex-Code)yii\data\Sort::parseSortParam allowing to customize sort param in descendant class (leandrogehlen)\yii\db\QueryTrait::limit() and \yii\db\QueryTrait::offset() methods work with \yii\db\Expression (Ni-san)yii cache command now warns about the fact that it's not able to flush APC cache from console (samdark)yii\widgets\ActiverForm was moved to the separate registerClientScript() method (uaoleg, silverfire)yii\widgets\DetailView (arogachev)Yii::$app to be set (sammousa)\yii\data\Sort (LAV45, klimov-paul)yii\caching\DbQueryDependency created allowing specification of the cache dependency via yii\db\QueryInterface (klimov-paul)yii\grid\GridView when data is empty and emptyText set to false (arogachev)MigrateController::$migrationPath to load non-namespaced migrations for BC with existing applications and extensions (schmunk42, cebe)yii\widgets\LinkPager page disabled (aquy)StringHelper (andrewnester)yii\data\ActiveDataProvider no longer queries models if models count is zero (kLkA, Kolyunya)pasta, currency (developeruz, silverfire)unset() call order in yii\di\ServiceLocator::set() (Lanrik)\yii\widgets\FragmentCache::getCachedContent(), added tests (Kolyunya)srcset to yii\helpers\Html::img() (Kolyunya)yii\db\mssql\QueryBuilder::resetSequence() (boboldehampsink)yii\db\QueryBuilder::resetSequence() implementations, fixed SQLite implementation (boboldehampsink)createRelationQuery() (leandrogehlen)yii\base\Security::hkdf() to take advantage of native hash_hkdf() implementation in PHP >= 7.1.2 (charlesportwoodii)yii\web\Response::setStatusCode() method now returns the Response object itself (kyle-mccarthy)yii\grid\DataColumn filter is automatically generated as dropdown list in case of format set to boolean (bizley)yii\widgets\Menu item classes definition in the form of an array (Kolyunya)mt_rand() is used instead of rand() in yii\captcha\CaptchaAction (kalessil)yii\data\SqlDataProvider now provides automatic fallback for the case when totalCount is not specified (SamMousa)yii\behaviors\TimestampBehavior (vladis84)\yii\validators\IpValidator as it turns out it is not needed for inet_* methods to work (mikk150)yii\caching\Cache::getOrSet() now supports both Closure and callable (silverfire)yii\filters\RateLimiter. Added tests (vladis84)yii\web\View::clear() sets populated arrays to empty arrays instead of null, also changed default values to empty array (craiglondon)yii\helpers\BaseFileHelper::normalizeOptions() is now protected (brandonkelly)yii\di\Instance::__set_state() method to restore object after serialization using var_export() function (silvefire)yii\rbac\DbManager::getRule() and yii\rbac\DbManager::getRules() to properly handle resource data came from Rule table when using PostgreSQL (StalkAlex)yii\validators\ExistValidator::$targetAttribute (developeruz)yii\console\controllers\MessageController to properly populate missing languages in case of extraction with "db" format (bizley)Yii::t() tags and restored missing translations for el, fa, ja, ru, and sk (cebe, softark)yii\helpers\StringHelper::truncateHtml() leaving extra tags (developeruz)Schema::TYPE_TIMESTAMP to be 'datetime' instead of 'timestamp', which is just an incremental number (nkovacs)yii\grid\ActionColumn default buttons (arogachev)yii\validation\NumberValidator when used with locales where decimal separator is comma (quantum13, samdark, rob006)orderBy with aggregate functions like count (Ni-san)yii\di\ServiceLocator::__isset() to match the behavior of __get() which fixes inconsistent behavior on newer PHP versions (cebe)getDbTargets() function in yii\log\migrations\m141106_185632_log_init that would create a log table correctly (bumstik)yii\db\ActiveRecord::unlinkAll() to respect onCondition() of the relational query (silverfire)Formatter::asCurrency() for proper decimal formatting (Oxyaction)nvarbinary. Enhanced SQL scripts compatibility with older versions (samdark)data column type from text to blob to handle null-byte (\0) in serialized RBAC rule properly (silverfire)StringHelper::truncateHtml() non functional when dom PHP extension is disabled (samdark)yii\caching\FileDependency to clear stat cache before reading filemtime (SG5)yii\validation\EmailValidator to prevent false-positives checks when property checkDns is set to true (silverfire)yii\console\controllers\MigrateController creating multiple primary keys for field bigPrimaryKey:unsigned (SG5)yii\behaviors\AttributeTypecastBehavior unable to automatically detect attributeTypes, triggering PHP Fatal Error (klimov-paul)Yii::$app->controller is available after handling the request since 2.0.10, this is now also the case for Yii::$app->controller->action (cebe)yii.activeForm.js introduced in #11999. Reverted commit 3ba72da (silverfire)yii\rbac\DbManager::getChildRoles() and yii\rbac\PhpManager::getChildRoles() throws an exception when role has no child roles (mysterydragon)yii\i18n\Formatter::asTimestamp() to process timestamp with miliseconds correctly (h311ion)yii\mutex\FileMutex on Windows systems (davidsonalencar)\yii\grid\GridView::guessColumns (githubjeka)yii\widgets\GridView::filterUrl to not ignore # part of filter URL (cebe, arogachev)yii\web\XmlResponseFormatter to use true and false to represent booleans (samdark)yii\behaviors\AttributeTypecastBehavior marks attributes with null value as 'dirty' (klimov-paul)yii\widgets\Pjax widgets (dynasource, samdark, rob006)yii\console\controllers\MigrateController::$migrationNamespaces is in use (evgen-d, klimov-paul)yii\console\controllers\AssetController::adjustCssUrl() breaks URL reference specification (url(#id)) (vitalyzhakov)validate() method in yii.activeForm.js to prevent unexpected form submit when forceValidate set to true (silverfire)handleAction() function in yii.js to handle attribute data-pjax=0 as disabled PJAX (silverfire, arisk)__toString (df2)destroy method in yii.captcha.js which did not work as expected (arogachev)yii\validators\IpValidator that sometimes caused wrong error message (silverfire)yii\rest\UrlRule::$extraPatterns did not work if no HTTP verb was specified (cebe)DbSession::regenerateID() failure when session_regenerate_id() fails (andrewnester)pgsql when PDO::ATTR_CASE is set (klimov-paul)destroy method in yii.gridView.js which did not work as expected (arogachev)yii.gridView.js (arogachev)-- ("End of Options" special argument) in CLI (rugabarbo)UniqueValidator error message (jetexe)yii.js (arogachev)yii.js works incorrectly (arogachev)yii.js (arogachev)skipOuterContainers option was incorrectly passed to pjax in handleAction in yii.js (arogachev)BaseConsole::renderColoredString() (nowm, silverfire)yii\web\MultipartFormDataParser adds an extra newline to every value (klimov-paul)./yii command (cebe, silverfire)yii\db\Query::emulateExecution() to force returning an empty result for a query (klimov-paul)yii\caching\Cache::$defaultDuration property, allowing to set custom default cache duration (sdkiller)yii\di\Instance::ensure() when a component does not exist (cebe)renderSelectOptions of \yii\helpers\Html helper (arogachev)EVENT_BEFORE_RUN, EVENT_AFTER_RUN and corresponding methods to yii\base\Widget (petrabarus)or relation for targetAttribute in yii\validators\UniqueValidator (developeruz)yii\db\Query can be passed to insert method in yii\db\QueryBuilder (voroks)yii\grid\RadioButtonColumn (darwinisgod)value for attributes in yii\widgets\DetailView (arogachev)yii.js and yii.validation.js use Regexp.test() instead of String.match() (arogachev, nkovacs)yii\validators\Validator::getClientOptions() (arogachev)filterHaving(), andFilterHaving() and orFilterHaving() to yii\db\Query (nicdnepr, samdark)varbinary data type in MySQL DBMS (silverfire)type column type from int to smallInt in RBAC migrations (silverfire)yii\caching\Cache::getOrSet() method (silverfire)yii\db\ActiveQueryTrait::createModels() from private to protected (ArekX, dynasource)beforeCacheResponse and afterRestoreResponse to yii\filters\PageCache to be more easily extendable (sergeymakinen)0=1) when fetching relational data (klimov-paul)ActiveField::addAriaAttributes property for aria-required and aria-invalid attributes rendering (Oxyaction, samdark)yii\web\XmlResponseFormatter (mhthnz, samdark)yii\db\Query::andWhere() now get appended to the existing conditions if they were already being joined with the and operator (brandonkelly)Throwable in yii\base\ErrorHandler::handleException(), transactions and simlar places where consistency must be kept after exception (rob006, cebe)yii\web\UrlRule::$pattern (erickskrauch)beforeItem and afterItem to yii\widgets\ListView (mdmunir, silverfire)yii\widgets\Menu to allow item option active be a Closure (voskobovich, silverfire)yii\base\Application::$version converted to yii\base\Module::$version virtual property, allowing to specify version as a PHP callback (klimov-paul)is_dir() validation to yii\helpers\BaseFileHelper::findFiles() method (zalatov, silverfire)UrlManager::createAbsoluteUrl() and Url helper methods (rob006)yii\widgets\ListView::itemOptions can be a closure now (webdevsega, silverfire)\yii\db\Query class as values in the \yii\db\QueryBuilder::insert() method (PowerGamer1)scrollToErrorOffset option for yii\widgets\ActiveForm which adds ability to specify offset in pixels when scrolling to error (mg-code)yii\cache\Dependency::getHasChanged() (deprecated, to be removed in 2.1) to yii\cache\Dependency::isChanged() (dynasource)yii\console\controllers\HelpController (schmunk42)columnSchemaClass option for yii\db\Schema which adds ability to specify custom yii\db\ColumnSchema class (nanodesu88)RangeNotSatisfiableHttpException to cover HTTP error 416 file request exceptions (zalatov)removeValue method to yii\helpers\BaseArrayHelper (nilsburg)getDefaultHelpHeader method to the yii\console\controllers\HelpController class to be able to override default help header in a class heir (diezztsk)textarea method within the yii\helpers\BaseHtml class to allow users to control whether HTML entities found within $value will be double-encoded or not (cyphix333)disabledListItemSubTagOptions attribute for yii\widgets\LinkPager in order to customize the disabled list item sub tag element (nadar)asJson() and asXml() for returning JSON and XML data in web controller actions (cebe)yii\filters\HostControl allowing protection against 'host header' attacks (klimov-paul, rob006)yii\log\SyslogTarget with $options to be able to change the default openlog options (timbeks)yii\db\oci (zlakomanoff)yii\db\Connection (Vovan-VE)
shuffleMasters option which adds ability to disable shuffling of masters connections.getMaster() getter and master property for getting currently active master connection.openFromPoolSequentially() protected method from openFromPool() protected method.yii\widgets\InputWidget::$field field, allowing access to the related yii\widget\ActiveField instance (klimov-paul)yii\validators\EachValidator::$stopOnFirstError allowing addition of more than one error (klimov-paul)yii\data\ActiveDataProvider in yii\rest\IndexAction (leandrogehlen)yii\validators\CompareValidator::$type (cebe)yii\web\ErrorAction to make it reusable (silverfire)yii\console\controllers\BaseMigrateController::$migrationNamespaces setup from CLI (schmunk42)yii\widgets\MaskedInput inputmask dependency to ~3.3.3 (samdark)yii\web\UrlNormalizer for normalizing requests with and without trailing slashes (rob006, cronfy, klimov-paul)UrlNormalizer for normalizing requests with and without trailing slashes (rob006, cronfy, klimov-paul)yii\web\UploadedFile returns parent instances in case invoked after it (andrewnester)yii\console\controllers\AssetController looses custom options of 'target' bundles (petrabarus, klimov-paul)canGetProperty() and canSetProperty() returns false for yii\db\BaseActiveRecord attributes (klimov-paul, Ni-san)yii.js AJAX prefilter (silverfire)Content-Disposition header for file downloads (samdark)yii\console\controllers\AssetController looses bundle override configuration, which makes it external one (klimov-paul)Response::EVENT_AFTER_SEND handler (samdark, andrewnester)yii.activeForm.js (silverfire)yii\widgets\Pjax::registerClientScript() to pass custom container to the PJAX JS plugin (silverfire)updateInputs() method in yii.activeForm.js to prevent reading property of undefined (silverfire)defaultValue (pana1990, s-o-f)yii\web\DbSession was echoing database errors in production mode (samdark, pastuhov, deadkrolik)yii\helpers\Console::getScreenSize() on Windows was giving out width and height swapped (Spell6inder, samdark, cebe)yii.getQueryParams() to handle + (plus) character properly (silverfire)yii\log\FileTarget does not apply fileMode for rotated via copy files (klimov-paul)gridData initialization in yii.gridView.js (pavlm)yii\widgets\ActiveField::end() generates close tag when it's option['tag'] is null (egorio)yii\rest\Serializer::serialize() serializes DataProvider incorrectly, if models keys do not compose integer sequence (dcb9, klimov-paul)yii\db\BaseActiveRecord::refresh() may set incorrect oldAttributes values at some cases (only-victor)for field label attribute for active form RadioList and CheckboxList (shevchik87, samdark)yii\base\Model::offsetExists() throws an exception on un-existing field (klimov-paul)yii\helpers\Json::encode() encodes empty array returned by JsonSerializable::jsonSerialize() as object (klimov-paul)./yii migrate/create was generating wrong code when using bigPrimaryKey (VojtechH, samdark)LEVEL_PROFILE for the syslog target (Mak-Di)yii\filters\HttpCache was sending an empty Pragma header (sergeymakinen)yii\db\BaseActiveRecord::updateAttributes() change isNewRecord state for the new model (klimov-paul)yii\validators\UniqueValidator custom message when validating multiple attributes (rob006)yii\db\mssql\Schema::resolveTableNames() when using linked database tables (hAppywAy)$thousandSeparator was explicitly set (cebe)yii\db\mysql\QueryBuilder causes warning when insert default rows into a table without primary key (DrmagicE)yii\mutex\FileMutex::release() (rob006)yii\web\Request::getBodyParams() does not pass full 'content-type' value to yii\web\RequestParserInterface::parse() (klimov-paul)StringHelper:truncateHtml (Alex-Code)yii\validators\UniqueValidator error of getting first model indexed by field (DrDeath72)binary() type for MSSQL (silverfire)yii\widgets\ActiveField::widget() to call adjustLabelFor() for InputWidget descendants (coderlex)indexBy handling for yii\db\Query::column() (silverfire)yii\console\controllers\BaseMigrateController::$migrationNamespaces (klimov-paul)yii\web\MultipartFormDataParser, which allows proper processing of 'multipart/form-data' encoded non POST requests (klimov-paul)yii\console\controllers\BaseMigrateController::migrationNamespaces (klimov-paul)yii\console\controllers\AssetController::deleteSource option allowing deletion of the source asset files after compression (pana1990, klimov-paul)yii\data\Sort::setAttributeOrders() method allowing manual setup of current sort (klimov-paul)yii\rbac\ManagerInterface::getChildRoles() method, allowing finding child roles for the given one (githubjeka)yii\helpers\ArrayHelper::merge() (mdmunir, rob006)yii\web\Request::getHostName() method that returns hostname of current request (rob006)yii.reloadableScripts now support wildcards with * character (silverfire)yii\grid\ActionColumn::urlCreator callback, which holds reference to the column instance (klimov-paul)yii\behaviors\AttributeTypecastBehavior for maintaining of strict ActiveRecord attribute types (klimov-paul)\yii\db\mssql\QueryBuilder::$typeMap[TYPE_TEXT] - NTEXT data type was deprecated in MSSQL (githubjeka)\yii\widgets\DetailView (githubjeka)yii\helpers\BaseArrayHelper::keyExists() speed (egorio)yii\mutex\OracleMutex which implements mutex "lock" mechanism via Oracle locks (zlakomanoff)yii\base\ViewNotFoundException which is thrown when views file doesn't exists, used it in ViewAction (samdark)yii\base\Model::attributeHints() (PowerGamer1)jQuery.on( instead of event method to ensure forwards compatibility (newerton)yii\filters\HttpCache no longer returns 304 HTTP code when callbacks return null (sergeymakinen)yii\helpers\Html::errorSummary(). Added the ability to display error messages beyond the first error for each model attribute (PowerGamer1)time and datetime validator short names (nkovacs)yii\log\Target::setLevels() (Mak-Di)yii.activeForm.js validate() method to be able to force validation (DrDeath72)yii\widgets\MaskedInput to use jQuery instead of $ to prevent conflicts (samdark)yii\base\Event::offAll() method allowing clear all registered class-level event handlers (klimov-paul)yii.activeForm.js will run it forcefully on form submit to display all possible errors (silverfire)yii.js comply with strict and non-strict javascript mode to allow concatenation with external code (mikehaertl)optional at yii\filters\auth\AuthMethod (mg-code)afterInit event to yii.activeForm.js (werew01f)yii\console\controllers\AssetController::getAssetManager() automatically enables yii\web\AssetManager::forceCopy in case it is not explicitly specified (pana1990, klimov-paul)inverseOf() not working for dynamic relational queries (laszlovl)yii\grid\DataColumn::getHeaderCellLabel() to extract attribute label from the filterModel of Grid (silverfire)beforeValidate wasn't triggered in some cases (lynicidn)ActiveRecord::hasAttribute() to avoid cases where it returns true when a number is passed to it (Faryshta)yii\validators\UniqueValidator for composite targetAttribute (PowerGamer1, silverfire, cebe)yii\i18n\PhpMessageSource::loadFallbackMessages() not to log error when source and language is same, but locales are different (silverfire)session.auto_start = 1 set in php.ini (cartmanchen)yii\validators\EachValidator::validateAttribute() does not respect skipOnEmpty rule parameter (webdevsega)yii\web\User::checkRedirectAcceptable() to treat acceptable content type */* as * (silverfire)bigPrimaryKey() for SQLite (dynasource)yii\i18n\MessageFormatter construction exception caught for PHP 7 compatibility (subdee, cebe)null resulting in integrity constraint violation for not null columns (samdark)QueryBuilder IN condition anymore (cebe)yii\helpers\ArrayHelper::getValue() to work properly with float keys (zsounder, AnikanovD)yii\db\ColumnSchemaBuilder to work with custom column types (andrey-mokhov, silverfire)schema-oci.sql for RBAC (jonny7)yii\validators\NumberValidator erroring when value is an object without __toString() method (SamMousa)yii\helpers\ArrayHelper::isIn() comparison did not work in strict mode (taobig)yii\db\QueryBuilder::batchInsert() calls with no data to insert (rob006)yii\web\UploadedFile to return null when there's no file uploaded (brummm)yii\helpers\ArrayHelper::index() losing precision for float keys (AnikanovD)yii\helpers\FileHelper (AnikanovD)yii\widgets\Pjax to properly respond with partials when custom selector is used for container (pigochu, samdark)mb_substr() with PHP < 5.4.8 where length of NULL was treated the same as 0 (samdark)selected for dropdown list using options (samdark)yii\web\User::loginByCookie() in order to make it easier to override (maine-mike, silverfire)yii\db\ColumnSchemaBuilder::null() when default value is set to null. (rob006)yii\rbac\PhpManager now invalidates script file cache performed by 'OPCache' or 'APC' on file saving (klimov-paul)null method on yii\db\ColumnSchemaBuilder to explicitly set column nullability (nevermnd)yii\helpers\BaseHtml now uses abstracted booleanInput() and activeBooleanInput() methods to render radio(), checkbox(), activeRadio() and activeCheckbox() (cesarnicola)yii\i18n\GettextPoFile::save() (stevekr)null in yii\web\AssetBundle won't be registered (Razzwan)yii\db\oci\Schema::findColumns() (SSiwek)yii\web\Response (dasmfm)yii\helpers\Markdown default flavor (mdmunir)yii\log\Target::logVar (HaruAtari)yii\helpers\BaseArrayHelper::filter() method (HaruAtari)yii\db\oci\Schema::loadTableSchema() for Oracle DBMS (SSiwek)yii\data\ArrayDataProvider::$modelClass property to specify a model used to provide column labels even when data array is empty (PowerGamer1)only and except at yii\base\ActionFilter (klimov-paul)yii\rbac\CheckAccessInterface from yii\rbac\ManagerInterface (SamMousa, samdark, mdomba)yii\grid\CheckboxColumn::$cssClass property to specify a class added to checkbox input (thiagotalma)_table and _column suffixes are now required when generating migration (rob006)yii\widgets\Pjax::$submitEvent to be able to customize event triggering PJAX form submit (Bvanleeuwen)yii\filters\AccessRule::$verbs can now be configured in upper and lowercase (DrDeath72, samdark)1.12.* (cebe)yii fixture "*, -User" should be used instead of yii fixture "*" -User (Faryshta, samdark)yii\widgets\ActiveField to handle inputs AJAX validation with changed ID properly (dizeee)$properties parameter in ArrayHelper::toArray() was not passed to recursive calls (quantum13)$('#grid').yiiGridView('getSelectedRows') when GridView::$showHeader is set to false (NekitoSP, silverfire)yii\validators\EachValidator does not invoke validateAttribute() method of the embedded validator (klimov-paul)yii\console\Application::runAction() to not to corrupt response object (hiqsol)yii\web\Request::getBodyParams() returned null instead of empty array if request body is empty and content type is application/json (samdark)yii\grid\CheckboxColumn to set correct value when yii\grid\CheckboxColumn::$checkboxOptions closure is used (nukkumatti)yii\widgets\MaskedInput (rahimov, klimov-paul)yii\i18n\MessageFormatter for formatting messages when not all parameters are given (laxity7, cebe)yii\web\UrlManager::createUrl() (sammousa)yii\db\mysqlSchema::findConstraints() (silverfire)yii.js - fixed error in ajaxPrefilter event handler, caused by blocked frame (maximal)yii\web\UploadedFile::getBaseName() to work with UTF-8 file names (hiscaler, silverfire)yii\helpers\StringHelper::truncateWords() to count words properly for non-English text (samdark, tol17)yii\i18n\Formatter::asDuration() (VirtualRJ)HtmlPurifier configuration sequence (samdark)yii.js - fixed getQueryParams() function to handle URLs with anchors correctly (DrDeath72)yii\db\QueryBuilder::buildAndCondition() to add query params passed directly by yii\db\Expression (CedricYii, silverfire)JSON_ERROR_SYNTAX for json_decode(null) in PHP 7 (fps01)yii\widgets\FragmentCache not handling empty content correctly in all cases (kidol)CaptchaAction when calling imagefilledrectangle (alsopub)__PHP_Incomplete_Class (DamianZ)yii.activeForm.js - AJAX validation will not be triggered if client side validation failed (silverfire)yii\db\BaseActiveRecord::link() method in order to support closure in indexBy for relations declaration (iushev)yii\console\controllers\BaseMigrateController, like the one for MongoDB, unable to create new migration (klimov-paul)TYPE_BIGPK (cebe)DateValidator (VirtualRJ, cebe)yii\validators\Validator::$attributes property now supports !attribute notation to validate attribute, but do not mark it as safe (mdmunir)yii\db\Query now contains a andFilterCompare() method that allows filtering using operators in the query value (lennartvdd)yii\validators\DateValidator skip validation for timestampAttribute, if it is already in correct format (klimov-paul)enctype form option when using file input field (pana1990, arogachev)after() and first() column schema builder modifiers (df2)yii\db\Query::exists() now uses SQL standard EXISTS() query via new yii\db\QueryBuilder::selectExists() method to improving performance in some cases (PowerGamer1)char datatype to framework (df2)yii\db\BaseActiveRecord now triggers event EVENT_AFTER_REFRESH after a record is refreshed (raoul2000)yii.js handleAction enhanced to support for data-form attribute, so links can trigger specific forms (SamMousa)yii\web\UrlManager rule cache key into $cacheKey protected property (lordthorzonus)formtarget attribute of submit button (AnatolyRugalev)$_SERVER in yii\web\Request before using it (quantum13)getUrlFromCache() and setRuleToCache() protected methods from yii\web\UrlManager::createUrl() (dmdark)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)BaseUrl::$urlManager to be able to set URL manager used for creating URLs (samdark)yii\grid\DataColumn::renderHeaderCellContent() to make code simpler (t-kanstantsin, samdark)yii\helpers\FileHelper::copyDirectory() is now throwing exception when trying to copy a directory to itself or a subdirectory (wallysalami, cebe, samdark)yii\helpers\Html::tag() and ::beginTag() return content without any HTML when the $tag attribute is false or null (pana1990)yii\console\Controller::optionAliases() method to support aliases for commands (pana1990)__toString() of column schema builder now adapts to column types (df2)yii\di\Container on Yii::$app (SamMousa)yii\web\User will now confirm the request accepts an HTML response before redirecting to the login page. Added optional $checkAcceptHeader to yii\web\User::loginRequired() (sammousa)yii\helpers\ArrayHelper::isTraversable(), added support for traversable selections for dropdownList, radioList and checkboxList in yii\helpers\Html (sammousa)yii\db\QueryBuilder now accepts Traversable objects for in condition (SamMousa, silverfire)yii\helpers\Inflector::transliterate() now uses strtr instead of str_replace (DrDeath72)yii\behaviors\AttributeBehavior::$skipUpdateOnClean which determines whether to skip a behavior when the behavior owner has not been modified (Faryshta)yii\log\Dispatcher in configuration (bionoren, cebe)yii\web\User::loginRequired() now does not set return URL when request method is not GET (dawei101, silverfire)yii\filters\HttpCache. It could be turned on via setting $weakEtag to true (particleflux)yii\validators\EachValidator injects specific attribute value in error message parameters (silverfire)useTablePrefix (Faryshta)yii\base\Security enhancements (tom--, samdark)
/dev/urandom and /dev/random./dev/random to /dev/urandom when running on FreeBSD.$hostInfo, $scriptUrl, and $pathInfo in yii\web\Request and $baseUrl, and $hostInfo in yii\web\UrlManager to null, to make Yii determine the value again (cebe)yii\helpers\StringHelper::countWords() that given a string returns number of words in it (samdark)ActiveRecordInterface::populateRelation() to respect the methods called by the implementation (SamMousa)yii\rbac\ManagerInterface::canAddChild() (dkhlystov, samdark)yii\helpers\BaseArrayHelper::isIn() and isTraversable() since now throw yii\base\InvalidParamException instead of InvalidArgumentException (nukkumatti)yii\db\ActiveRecord::unlink() is not setting FK to null before deleting itself anymore (samdark)~4.6 (samdark)yii\mutex\PgsqlMutex which implements mutex "lock" mechanism via PgSQL locks (nineinchnick, CSharpRU)information_schema tables instead of SHOW CREATE TABLE to improve reliability (nineinchnick)yii\widgets\ActiveField to handle inputs validation with changed ID properly (dynasource, cebe)yii\grid\CheckboxColumn fixed _all checkbox column name generation (cebe, silverfire)yii\helpers\BaseArrayHelper fixed PHP Fatal Error: Nesting level too deep - recursive dependency? (andrewnester)yii\validators\FileValidator to display error for tooBig and tooSmall with formatted unit (silverfire)yii\helpers\VarDumper::export() unable to export circle referenced objects with Closure (klimov-paul)yii.activeForm.js: input onBlur event forces field validation (githubjeka)yii\i18n\Formatter::asSize() or yii\i18n\Formatter::asShortSize() (nxnx, cebe)yii\helpers\FileHelper::createDirectory() directory creation to be concurrency friendly (dynasource)yii\rbac\DbManager::getPermissionsByUser() not returning permissions directly assigned to a user (hesna)yii\console\controllers\MessageController not using database connection specified in config (raccoon69, samdark)yii\web\AssetManager to publish bundles using symlink with nested directories in hash (silverfire)PDO::ATTR_CASE = PDO::CASE_LOWER did not work anymore (cebe)yii\db\Migration::renameTable() caused fatal error when using SQLite driver (fetus-hina)yii\db\Query::where() does not add params from directly passed yii\db\Expression (klimov-paul)yii.validation.js code so it is compressable by YUICompressor (samdark, hofrob)yii\web\UrlManager::createAbsoluteUrl(['site/index', '#' => 'testHash']) losing hash (alchimik, samdark)yii\web\Response::redirect() - added check for X-Ie-Redirect-Compatibility header (silverfire)yii\i18n\I18N::format() wasn't able to handle named placeholder in "selectordinal" (samdark)yii\helpers\Json::encode() was erroring under CYGWIN (samdark)Html::activeFileInput() had the wrong name if a name was explicitly given (graphcon, cebe)yii\rbac\PhpManager::updateItem() unable to save users assignments (rezident1307)yii\web\Request error when path info is empty (dynasource)yii\db\sqlite\QueryBuilder to generate proper SQL for UNION (romeOz, samdark)Response::FORMAT_RAW is used (nainoon)yii\db\Expression to Query::select() or ::addSelect() was not handled correctly in all cases (cebe)yii\helpers\BaseStringHelper::explode() code so it doesn't remove items equal to 0 when skip_empty is true (silverfire, kidol)yii.js handleAction corrupted parameter values containing quote (") character (silverfire)yii\web\UrlRule to allow route parameter names with -, _, .characters (silverfire)yii\widgets\MaskedInput not working with PJAX (martrix78, samdark)yii\i18n\Formatter to work with huge numbers on 32-bit arch (necrox87, silverfire)yii\rbac\PhpManager (rezident1307)yii\validators\EmailValidator to check the length of email properly (silverfire)yii\validators\UniqueValidator to work properly when model is not instance of targetClass (bupy7, githubjeka, silverfire)yii\helpers\BaseJson support \SimpleXMLElement data (SilverFire, LAV45)yii.getQueryParams, which parsed array variables incorrectly (servocoder, silverfire)yii\validators\CaptchaValidator passed incorrect hashKey to JS validator when captchaAction begins with / (silverfire)yii\di\Instance::ensure() to work with minimum settings (LAV45)Console helper progress bar (youmad)yii\grid\GridView::guessColumns() to work with numeric column names (silverfire)activeForm.js - when submit doesn't reload page, submit button value simulation with hidden input did not work (andrewnester)yii\helpers\BaseStringHelper - BaseStringHelper::truncateHtml adds suffix regardless of the string length (andrewnester)yii\web\UrlManager::parseRequest() to treat request URL with more than one slash at the end as invalid (andrewnester)yii\validators\UrlValidator pattern to improve matching (silverfire)yii\widgets\DetailView::normalizeAttributes() fixed for arrayable models (boehsermoe)yii\validators\EachValidator does not respect skipOnEmpty rule parameter (klimov-paul)ViewAction pages (samdark)mb_* functions calls to use UTF-8 or Yii::$app->charset (silverfire)joinWith() (cebe, nainoon)yii\validators\IpValidator to perform validation of IP addresses and subnets (SilverFire, samdark)yii\db\ActiveQuery::alias() to allow specifying a table alias for the model table without having to know the name (cebe, stepanselyuk)yii\i18n\Formatter::asDuration() method (nineinchnick, SilverFire)yii\widgets\Pjax::options now support special option tag to specify tag of container (Alex-Code)yii\grid\ActionColumn (fornit1917, silverfire)yii\filters\auth\AuthMethod::optional for optional authentification in all child classes (SilverFire)yii\validators\CompareValidator default messages (slinstj)RangeValidator (RomeroMsk)yii\db\Connection::commandClass to configure a command class that will be used by the connection (sammousa, silverfire, cebe)yii\captcha\CaptchaAction::$imageLibrary property allowing to set image rendering library (AnatolyRugalev)message console command (vchenin)yii\widgets\FragmentCache will not store empty content anymore which fixes some problems related to yii\filters\PageCache (kidol)yii\i18n\Formatter (cebe, z-avanes, hooman-pro)yii\db\Expression to Query::groupBy() (cebe)yii\validators\FileValidator::maxFiles can be set to 0 to allow unlimited count of files (PowerGamer1, silverfire)yii\db\ColumnSchemaBuilder::defaultExpression() to support DB Expression as default value (kotchuprik)yii\web\Response::sendHeaders() does now set the status header last which negates certain magic PHP behavior regarding the header() function (nd4c, kidol)unsigned() to ColumnSchemaBuilder (samdark)yii\rbac\ManagerInterface::getUserIdsByRole() and implementations (samdark)yii\grid\ActionColumn header (arogachev, dynasource)yii\widgets\LinkPager::$pageCssClass that allows to set default page class (ShNURoK42)yii\web\JsonResponseFormatter::$encodeOptions and ::$prettyPrint for better JSON output formatting (cebe)~3.2.2 (samdark)Cache.SerializerPermissions configuration option for HTMLPurifier is set to 0775 (klimov-paul)yii\grid\ActionColumn::$urlCreator (freezy-sk)yii\helpers\BaseInflector::transliterate() is now public. Introduced different levels of transliteration strictness (silverfire)csrf option to Html::beginForm() to allow disabling the hidden csrf field generation (machour)yii\base\Controller::viewPath is now configurable (Sibilino)yii.confirm context to the event's target DOM element which is triggered by clickable or changeable elements (lichunqiang)yii\behaviors\SluggableBehavior (cebe, hesna, silverfire)yii\db\Connection serializable (Sam Mousa)RangeValidator::ranges, added ArrayHelper::isIn() and ArrayHelper::isSubset() (Sam Mousa)yii\web\AssetBundle (machour)Yii::powered() now uses Yii::t() (SamMousa)yii.gridView.js (omnilight, silverfire)yii.js - added original event passing to pjaxOptions for links with data-method and data-pjax (servocoder, silverfire)yii\helpers\VarDumper::dump() now respects PHP magic method __debugInfo() (klimov-paul)yii/console/controllers/MessageController (rmrevin)yii\helpers\BaseHtml::radiolist(), ::checkboxList() (TianJinRong, githubjeka, silverfire)yii\db\Expression to yii\db\Query::orderBy() and yii\db\Query::groupBy() (andrewnester, cebe)yii\web\XMLResponseFormatter changed to format models in a proper way (andrewnester)yii\i18n\DbMessageSource (silverfire)yii\helpers\FileHelper::removeDirectory() fail to unlink symlinks under Windows (samdark)yii\behaviors\AttributeBehavior::getValue() now respects the callable in array format (silverfire)yii\web\ErrorHandler::displayVars make list of displayed vars customizable. $_ENV and $_SERVER are not displayed by default anymore (silverfire)Yii::$app->user->can() now returns false instead of erroring in case authManager component is not configured (creocoder)DetailView now automatically sets container tag ID in case it's not specified (samdark)Traversable objects are now formatted as arrays in yii\web\XmlResponseFormatter to support SPL objects and Generators (MaXL-ru)yii\base\Security use random_bytes(), LibreSSL, mcrypt, limit OpenSSL to Windows, and to prefer password_hash() over crypt() (tom--)yii\behaviors\TimestampBehavior::getValue() changed to make value processing consistent with AttributeBehavior::getValue() (silverfire)yii\caching\Cache have been marked as deprecated (trejder, githubjeka)yii\behaviors\BlameableBehavior::getValue() changed to make value processing consistent with yii\behaviors\AttributeBehavior::getValue() (silverfire)trim validator now passes the trimmed value to subsequent validators (nkovacs)yii\helpers\ArrayHelper::toArray() wasn't passing $recursive to yii\base\Arrayable::toArray() (brandonkelly)data-method submit bug when client validation is used (vbelogai)yii\behaviors\TimestampBehavior::touch() now throws an exception if owner is new record (klimov-paul)yii\i18n\Formatter did not allow negative unix timestamps as input for date formatting (cebe)Schema::getLastInsertId() was not properly quoted (nineinchnick)Widget::run() conflicts with Pjax widget which did the cleanup itself (cebe, joester89)yii\db\ActiveRecord does not update attribute specified at optimisticLock() after save (klimov-paul)yii\caching\FileCache doesn't lock cache files when reading (iworker)yii\pgsql\QueryBuilder::batchInsert() may cause "undefined index" error (arkhamvm)yii\helpers\Html::activeTextarea() does not allow value overriding via options (klimov-paul)yii\db\Command::getRawSql() unable to parse params specified without colon (':') (klimov-paul)yii\db\ActiveQuery produces incorrect SQL for aggregations, when sql field is set (klimov-paul)yii\rbac\DbManager::checkAccessFromCache() to check against auth items loaded in cache recursively (achretien, qiangxue)yii\web\Response::xSendFile() does not reset format (vyants)yii\db\Migration produces incorrect results due to table schema caching (klimov-paul)yii.activeForm.js scrolling to top (nkovacs)yii\db\ActiveQuery failed removing duplicate records after join when the resultset did not contain the pk values e.g. after grouping (cebe)CONSTRAINT_TYPE (nidgetgod)yii\widgets\Menu::isItemActive() (demi)yii\filters\PageCache not using the configured duration and dependency when caching the response data (kidol)yii\web\UrlManager::createUrl() did not create correct URL when defaults were used, internal cache is now skipped in certain situations (cebe)yii\helpers\mssql\QueryBuilder::renameColumn() and yii\helpers\mssql\QueryBuilder::renameTable() escaping (sitawit)yii\web\Request ignore queryParams when resolve request (zetamen)yii\db\BaseActiveRecord::unlink() which may result in wrong comparison result for hash valued primary keys starting with 0e (cebe)yii\console\Controller::options() when default action was requested (cebe)yii\caching\FileCache was not triggered (kidol)yii\db\ColumnSchemaBuilder (pana1990, vaseninm, samdark, cebe)updateMessages() to yii.activeForm.js to support manually updating ActiveForm messages (nkovacs)yii\helpers\Html (klimov-paul)STDIN, STDOUT, and STDERR itself if they are not defined (cebe)yii\widgets\ActiveField now uses corresponding methods for default parts rendering (klimov-paul)errorAttributes parameter to ActiveForm afterValidate event. Made scrolling to first error optional (nkovacs)yii\console\controllers\MessageController now sorts created messages, even if there is no new one, while saving to PHP file (klimov-paul)yii\console\controllers\MessageController improved allowing extraction of nested translator calls (klimov-paul)post_max_size parameter in yii\validators\FileValidator::getSizeLimit() (maxxer)yii\helpers\Html allows correct rendering of conditional comments containing !IE (salaros, klimov-paul)yii\widgets\LinkPager::$linkOptions to allow configuring HTML attributes of the a tags (zinzinday)maxlength attribute for Html::activeTextArea() and Html::activePassword() (klimov-paul)yii\web\AssetManager::publish() (klimov-paul)yii\console\controllers\MessageController support .pot file creation (pgaultier)markUnused option to yii\console\controllers\MessageController (marius7383)yii\web\DbSession (klimov-paul)yii\helpers\Html::escapeJsRegularExpression() method from yii\validators\RegularExpressionValidator (silverfire, klimov-paul, samdark, qiangxue)yii\db\pgsql\QueryBuilder::createIndex() can now specify the index method to use (LAV45)yii\widgets\MaskedInput to produce an input tag of a custom type (TriAnMan)FileCache fails to write into file (foccy)yii\web\ErrorAction displays 404 error instead of blank page on direct access (klimov-paul)yii migrate command error. (RusAlex)Json errors (grzegorzkurtyka, samdark)yii\web\UrlRule::getParamRules() (df2)hashCallback in yii\web\AssetManager to allow custom hash generation for asset directory (petrabarus)yii\base\ErrorHandler::logException() will now log the whole exception object instead of only its string representation (cebe)yii\web\User::getAuthManager() method (samdark)yii\helpers\BaseStringHelper::truncateHtml() is now using runtime directory for HTMLPurifier cache (webdevsega)ViewAction::resolveViewName() not to accept /../ and /./ (thejahweh, samdark)RETURNING for inserts for pgsql and oci to support PKs with a custom default value expression (nineinchnick, klimov-paul)data-confirm in an yii\widgets\ActiveForm may cause the dialog to appear twice (pana1990, qiangxue)yii\helpers\Html::dropDownList() overrides label specified at 'groups' option (aktec, klimov-paul)yii\console\controllers\AssetController does not create missing folders for the target bundles (schmunk42, klimov-paul)yii\web\Application::handleRequest() and yii\widgets\Menu::items if route element is not a first one (nkovacs, klimov-paul)yii\web\Response::sendContentAsFile() that was broken in 2.0.3 (samdark)FormatConverter to work with unicode characters (maddoger, cebe)yii\rbac\DbManager::getRolesByUser() and yii\rbac\PhpManager::getRolesByUser() to return roles only (samdark)PDO::ATTR_CASE is set (nineinchnick)L (nkovacs)yii\base\Model does not recognize scenario declared by rules using 'except' (klimov-paul)yii\db\ColumnSchema was typecasting numerics to strings with incorrect decimal separator for some locales (nineinchnick)yii\helpers\VarDumper::export() fails to export object containing Closure (klimov-paul)findUniqueIndexes() not to perform any processing on unique index on function for pgsql (nineinchnick)yii\db\Schema::getLastInsertID()` by quoting sequence name (nineinchnick)parseFloat() call for the compare js validator (CthulhuDen)yii\rbac\PhpManager::updateItem() was unable to rename item updated (ChristopheBrun, samdark)yii\log\Logger unable to export session id (klimov-paul)yii\db\Query::count() fails for query containing 'having' without 'group by' (klimov-paul)yii\data\ArrayDataProvider::getKeys() return wrong when yii\data\ArrayDataProvider::$allModels contain integer key (mdmunir, klimov-paul)yii\db\BaseActiveRecord::getAttributeLabel() return wrong label for related attribute, if several relations in chain share same name (klimov-paul)yii\db\BaseActiveRecord::updateCounters() fails for new record saved with counter attribute not set (klimov-paul)yii\db\ActiveRelationTrait::populateRelation() fails when link refers to string convertable object attribute, like MongoId (klimov-paul)yii\widgets\FragmentCache when enabled is false (nkovacs)$_GET transformed to 0-based, if 'pretty URL' enabled (quantum13, klimov-paul)yii\helpers\Json::htmlEncode() to support safer JSON data encoding in HTML code (samdark, Wojciech Janusz, Tomasz Tokarski)attributeHints() method (klimov-paul)yii\validators\EachValidator, which allows validation of the array attributes (klimov-paul)timestampAttribute of date validator making it fully usable for validating complete timestamps (cebe)yii\helpers\FileHelper::createDirectory() to include the path name of the directory (cebe)ignoreCategories config option for message command to ignore categories specified (samdark)validateOnType enabled no longer triggers validation (slinstj)yii\filters\auth\CompositeAuth::authMethods to take authentication objects (fernandezekiel, qiangxue)$key as an array at yii\helpers\ArrayHelper::getValue() (Alex-Code)yii\helpers\StringHelper::explode() to perform explode with trimming and skipping of empty elements (SilverFire, nineinchnick, creocoder, samdark)yii\validators\DateValidator (nkovacs)indexBy() together with column() in query builder (qiangxue)yii\data\Sort link labels in a ListView when used with an ActiveDataProvider (cebe)yii\console\controllers\AssetController provides dependency trace in case bundle circular dependency detected (klimov-paul)yii help now lists all sub-commands by default (callmez)YII_DEBUG is false (samdark)yii\web\Session::getHasSessionId() uses a more lenient way to check if session ID is provided in URL (robsch)yii\web\Request::validateCsrfToken() to validate a manually provided token (miraage, qiangxue)yii\filters\PageCache::cacheCookies and cacheHeaders to allow selectively caching cookies and HTTP headers (qiangxue)aria-label to ActionColumn buttons (LAV45, samdark)yii\i18n\Formatter::$numberFormatterSymbols to allow setting custom symbols for the internally used IntlNumberFormatter, e.g. currency signs (cebe)yii\widgets\Pjax got ability to avoid registering link/form handler via setting false to $linkSelector/$formSelector (usualdesigner, Alex-Code, samdark)yii\db\Schema::getSchemaNames() method (nineinchnick)yii\rest\UrlRule::extraPatterns should take precedence over patterns (Agrumas)yii\widgets\Menu::$options['tag'] to false (kirsenn, samdark)yii\rest\Serializer (arturf)yii\db\BaseActiveRecord::isAttributeChanged() method will be made as identical (thiagotalma)yii\web\UrlManager::createUrl() (laszlovl, klimov-paul)yii\db\QueryBuilder to recognize more variations of limit and offset values (tino415, qiangxue)yii\i18n\Formatter now shows more information about errors which occured when formatting values (cebe)yii\helper\Console::wrapText() method to wrap indented text by console window width and used it in yii help command (cebe)yii\db\IntegrityException for oci (nineinchnick)yii\widgets\LinkPager::$firstPageLabel and yii\widgets\LinkPager::$lastPageLabel now could be set to true in order to use page number as label (samdark)cebe/markdown to version 1.1.x (cebe)yii\web\Cors should handle Access-Control-Request-Headers in a case-insensitive manner (qiangxue)yii\validators\DateValidator returned valid for date "2012-12-12foo" with intl extension enabled (gajahlemu)TestCase classes (ivokund)yii\web\Response::sendContentAsFile() may not send correct content-length header (sadgnome)yii\helpers\ArrayHelper::htmlEncode() and htmlDecode() should not remove non-string data (qiangxue)yii\console\controllers\AssetController now correctly handles relative image URLs if source and target CSS are under same directory (klimov-paul)yii\data\ArrayDataProvider did not correctly handle the case Pagination::pageSize = 0 (kirsenn, qiangxue)yii\helpers\Html::getInputId()now also replaces.with-` to ensure a valid ID is generated (omnilight)yii\captcha\CaptchaAction should send response in JSON format (InteLigent, qiangxue)yii\web\Request::getEtag() should strip off -gzip which may be added by Apache (mcd-php)yii\db\Expression is being selected (mdmunir, qiangxue)yii\db\ActiveRecord::populateRecord() should be called in late binding approach (jlorente)yii\console\Controller::parseDocCommentSummary() (gugglegum)yii\log\DBTarget (samdark)yii\widgets\ActiveField::radio() should not generate the label twice (justinvoelker)yii\rbac\DbManager::checkAccess() by caching mechanism (qiangxue)yii\filters\PageCache now supports caching response headers as well as non-HTML response content (qiangxue)yii\web\AssetManager::appendTimestamp to support cache busting for assets (qiangxue)data-params to specify additional form data to be submitted via the data-method approach (usualdesigner, qiangxue)encode for each item of yii\widgets\Breadcrumbs (samdark, aleksanderd)validateAttribute() to yii.activeForm.js to support manually triggering data validation of an input (Alex-Code, qiang)Access-Control-Expose-Headers header by yii\filters\Cors (usualdesigner)yii\helpers\Url::current() method that allows adding or removing parameters from current URL (samdark, callmez)yii\helpers\BaseHtmlPurifier::helpers() in order to be able to configure HtmlPurifier helper globally via subclassing (Alex-Code)yii\web\ErrorHandler::getTypeUrl() in order to allow providing custom types/classes/methods URLs for subclasses (brandonkelly)yii\base\ErrorHandler::logException() is now public (samdark)yii\log\FileTarget::$enableRotation to allow disabling log rotation when external tools are configured for this (cebe)yii\console\controllers\BaseMigrateController now throws exception if directory specified doesn't exist and action isn't create (lynicidn, samdark)yii\widgets\Menu container tag by setting options['tag'] to false (dynasource, samdark)yii\helpers\Html::$dataAttributes to support customizing data attributes (Faryshta, qiangxue)yii\db\ColumnSchema by adding typecast() method to decouple phpTypecast() from dbTypecast() (mcd-php, qiangxue)trim validator now works on the client side too (qiangxue)maxlength attribute for Html::activeTextInput() (llfm)Schema::TYPE_DOUBLE to represent ANSI SQL Double Precision type (samdark)encode option to allow not encoding select options for Html::dropDownList() and Html::listBox() (yapi68, qiangxue)yii\di\Container to instantiate and configure an object that implements yii\base\Configurable (qiangxue)yii message/config to reflect directory structure better (mikehaertl, samdark)href and data-method attributes (qiangxue)true: y or yes. To return false: n or no. Any other input the question will be asked again (thiagotalma)ActiveRecord::findByCondition() to simplify the implementation and usage (Faryshta)yii\authclient\clients\Twitter::$authUrl changed to 'authenticate', allowing usage of previous logged user without request an access (kotchuprik)name or model and attribute are no longer required properties of yii\jui\InputWidget (nirvana-msu, cebe)yii\mongodb\Query::select now allows excluding fields (Sammaye, klimov-paul){registerCssFile and {registerJsFile (TomassunGitHub, samdark){use class='yii\bootstrap\Nav' type='function'} (ivanlemeshev)yii\sphinx\Query no longer attempts to call snippets for the empty query result set (Hrumpa)Alert widget was generating duplicate IDs in case of multiple flashes (SDKiller)yii\widgets\Menu are not encoded (qiangxue)yii\di\Container::get() did not handle config parameter correctly when it is passed as a constructor parameter (qiangxue)/ and pattern was empty (cebe)Content-Transfer-Encoding from the list of default download headers (DaSourcerer)yii\helpers\Url::toRoute() and yii\helpers\Url::to() (qiangxue, lynicidn)yii\console\controllers\AssetController now handles bundle files from external resources properly (klimov-paul)DbCache (qiangxue)yii\behaviors\SluggableBehavior::immutable to support keeping the generated slug unchanged (trntv)yii\widgets\ActiveForm will scroll to the nearest visible element when the first error input is hidden (newartix)yii\base\Theme::basePath during runtime (qiangxue)Target now works also when there is no Yii::$app instance available, no message prefix will be added in this case (schmunk42)yii\behaviors\SluggableBehavior will generate a new slug only when the slug attribute is empty or the source attribute is changed (qiangxue)yii\authclient\OAuth2::refreshAccessToken() does not save fetched token (sebathi)yii\authclient\AuthAction::cancelUrl (klimov-paul)yii\bootstrap\Dropdown should register client event handlers (qiangxue)ActiveFixture class for testing fixture support for elasticsearch (cebe, viilveer)de-DE and the translation files does not exists, it will use de instead (cebe)yii\mongodb\file\ActiveRecord (klimov-paul)mget() (pyurin)yii\sphinx\Query::queryScalar() fixed (klimov-paul)path and url weren't resolving aliases (samdark, lynicidn)yii\caching\ApcCache::getValues() now returns array in case of APC is installed but not enabled in CLI mode (samdark, cebe)yii message accuracy and error handling were improved (samdark)yii\console\controllers\AssetController breaks CSS URLs, which start from '/' (klimov-paul)yii\bootstrap\Tabs would throw an exception if content is not set for one of its items (RomeroMsk)yii\rbac\DbRbacManager should not delete items when deleting a rule on a database not supporting cascade update (mdmunir)yii\db\Expression to be used as the value (cebe, stevekr)yii\log\Target should not attempt to start session when there is none (klimov-paul, qiangxue)yii\caching\ApcCache::mset() and madd() may cause warning in some APC setup (LAV45)currentPage meta data in the RESTful result should be 1-based, similar to that in HTTP headers (qiangxue)asset command would incorrectly combine CSS files when yii\web\AssetManager::linkAssets is true (dmvslv)yii\validators\Validator::whenClient to avoid js error (mdmunir, qiangxue){path was generating absolute URLs instead of relative ones (samdark, motzel)data-confirm attribute to a submit button, clicking on the button would not trigger form submission (qiangxue)QueryBuilder::batchInsert() may cause "undefined index" error (qiangxue)message command fails with a FK constraint error when trying to update messages (qiangxue)yii\grid\CheckboxColumn checkboxes in grid view wasn't resulting in "all" checkbox selected (samdark)yii\helpers\ArrayHelper::toArray() now applies $properties parameter for converting descending objects in recursive calls (otsec)yii\helpers\ArrayHelper::htmlEncode() does not work properly when the value being encoded is a nested array (tebazil)encode option via yii\widgets\ActiveRecord::errorOptions, it works the other way around (stanishevsky, qiangxue)yii\db\Connection::getSchema() for Oracle should return false when the table does not exist. Oracle does not support ON UPDATE clause. (wenbin1989)yii\rbac\DbManager::getChildren() was not quoting column name properly (wenbin1989)yii message was emptying existing translations in .po in case of multiple categories (samdark)yii message was incorrectly writing not yet translated strings in .po in case of multiple categories (samdark)yii\rbac\DbManager should properly quote table and column names (qiangxue)yii\db\Expression to yii\db\QueryBuilder BETWEEN and LIKE conditions (cebe)yii\widgets\ActiveForm::enableClientScript is false (qiangxue)yii\bootstrap\Tabs dropdown IDs were generated incorrectly (samdark)yii\widgets\ActiveForm different fetch modes (grachov)yii\db\Schema::getLastInsertID() was passing wrong default schema name to PDO (samdark)yii\i18n\Formatter::asParagraphs() was not unicode-aware (samdark)yii\gii\generators\crud\Generator to support customizing view path for the generated CRUD controller (qiangxue)yii\web\UrlRule was unable to create URLs for rules containing unicode characters (samdark)yii\web\AssetManager should not publish disabled asset bundles (qiangxue)yii\web\AssetConverter::$forceConvert (klimov-paul)yii\bootstrap\ButtonDropdown::$containerOptions (samdark)yii\bootstrap\Modal::$headerOptions and yii\bootstrap\Modal::$footerOptions (tuxoff, samdark)yii\log\DbTarget (samdark)$checkAjax parameter to yii\web\Response::redirect() to support default redirection behavior for AJAX/PJAX requests (qiangxue)yii\bootstrap\Nav::renderDropdown() (qiangxue)yii\db\QueryBuilder::alterColumn() (qiangxue)yii\widgets\Breadcrumbs::links will be treated as HTML attributes for the generated hyperlinks (qiangxue)yii\grid\DataColumn::encodeLabel (SDKiller)yii\web\User::getIdentity() to avoid potential infinite recursion (qiangxue)yii\bootstrap\Dropdown (hiltonjanfield, qiangxue)DateTimeImmutable to yii\i18n\Formatter (olegtsvetkov, cebe)json_encode is now used with JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE where it makes sense, also
it is now default for yii\helpers\Json::encode() (samdark)yii\debug\Module::panels as panel class name strings (qiangxue)--overwrite option to Gii console command to support overwriting all files (motin, qiangxue)yii cache/flush-schema console command to flush DB schema cache of a given database connection (6pblcb, samdark)yii\base\ErrorHandler::unregister() instead of restore_*_handlers directly (aivus)yii\i18n\Formatter::defaultTimeZone for specifying the default time zone to use for datetime values stored in the database (cebe)$formName to Model::loadMultiple() to support customizing form name directly (qiangxue)yii\bootstrap\Tabs::renderTabContent to support manually rendering tab contents (RomeroMsk)ErrorException (mongosoft)yii\bootstrap\ButtonGroup::buttons can take all options that are supported by yii\bootstrap\Button (aleksanderd)Html::encode() to be used when the application is not started (qiangxue)yii message command now shows user friendly error if it's not able to parse source file (samdark)yii\helpers\Inflector::sentence() (pana1990, qiangxue)StringHelper::truncate() and StringHelper::truncateWords() (Alex-Code)Console::confirm() now uses Console::stdout() instead of echo to be consistent with all other functions (cebe)yii\rbac\DbManager migration now uses database component specified in component settings instead of always using default db (samdark)yii\base\Controller::renderContent() (qiangxue)yii fixture command now offers help if no arguments are provided instead of crashing (samdark)yii\db\Command::queryInternal() is now protected (samdark)yii\grid\GridView is no longer throwing an exception when results are empty and columns aren't defined (samdark)--append option for the fixture command (qiangxue)setXyz() (cebe)definedBy reference for properties (cebe)images directory if it does not exist instead of throwing an error (cebe)--guidePrefix option available as a command line option (cebe)yii\authclient\widgets\AuthChoice does not loaded if popupMode disabled (klimov-paul)yii\bootstrap\Tabs would throw an exception if content is not set for one of its items (RomeroMsk)yii\bootstrap\Tabs dropdown IDs were generated incorrectly (samdark)yii\bootstrap\ButtonDropdown::$containerOptions (samdark)yii\bootstrap\Modal::$headerOptions and yii\bootstrap\Modal::$footerOptions (tuxoff, samdark)yii\bootstrap\Nav::renderDropdown() (qiangxue)yii\bootstrap\Dropdown (hiltonjanfield, qiangxue)yii\bootstrap\Tabs::renderTabContent to support manually rendering tab contents (RomeroMsk)yii\bootstrap\ButtonGroup::buttons can take all options that are supported by yii\bootstrap\Button (aleksanderd)yii\debug\Module::panels as panel class name strings (qiangxue)DefaultController::getManifest() more robust against corrupt files (cebe)groovy script for updating making it compatible with ES >1.3.0 (cebe)ActiveRecord::unlink() was failing in some situations when working with relations via array valued attributes (cebe)ActiveRecord::update() and ::delete() including support for routing needed for updating records with parent relation (cebe)yii\gii\generators\crud\Generator to support customizing view path for the generated CRUD controller (qiangxue)--overwrite option to Gii console command to support overwriting all files (motin, qiangxue)yii\mongodb\ActiveRecord saves null as _id, if attributes are empty (klimov-paul)yii\mongodb\Query and yii\mongodb\ActiveQuery (klimov-paul)true is returned instead, now only OK will result in a true while all other values are returned as is (cebe){path was generating absolute URLs instead of relative ones (samdark, motzel)yii\sphinx\Query::where()andyii\sphinx\ActiveQuery::where()did not allowyii\db\Expression` to be used as the value (cebe, stevekr)yii\sphinx\QueryBuilder does not support comparison operators (>,<,>= etc) in where specification (klimov-paul)yii\db\Exression to QueryBuilder LIKE conditions (cebe)yii\console\controllers\AssetController breaks CSS URLs on Windows (klimov-paul)yii\console\controllers\AssetController breaks CSS URLs in case target file localed at yii\web\AssetManager::basePath root (klimov-paul)RangeValidator (githubjeka, qiangxue)yii\i18n\Formatter::decimalSeparator and yii\i18n\Formatter::thousandSeparator where not configurable when intl is not installed (execut, cebe)yii\web\Session::getHasSessionId() (qiangxue)yii\bootstrap\DropDown (aryraditya)yii\bootstrap\DropDown should register bootstrap plugin asset (zelenin)yii\base\Module::afterAction() was called even when beforeAction() returned false (cebe)yii\behaviors\Cors causes "undefined index" error when its cors is configured (qiangxue)yii\helpers\Html::addCssStyle() wasn't correctly setting style passed in array (kartik-v, samdark)yii\rbac\DbManager to prevent database exceptions when $userId is empty (samdark)$viewFile and $params to the EVENT_BEFORE_RENDER and EVENT_AFTER_RENDER events for View (qiangxue)removeChildren() to yii\rbac\ManagerInterface and implementations (samdark)yii\base\Application::loadedModules (qiangxue)startsWith() and endsWith() to yii\helpers\StringHelper. Methods are binary-safe, multibyte-safe and optionally case-insensitive (armab)asEmail(), asImage() and asUrl() methods of yii\i18n\Formatter (alxkolm, samdark)yii\base\Module as concrete module classes (qiangxue)yii\widgets\Pjax should end application right after it finishes responding to a pjax request (qiangxue)yii\db\mssql\Schema::getTableSchema() should return null when the table does not exist (qiangxue)Widget::run() when a widget is used as a container and as a self-contained object (qiangxue)yii\base\Application::bootstrap may fail to load some components if they are specified as class names (qiangxue)yii\console\controllers\AssetController now respects data URL resources (klimov-paul)defaultRoles set in RBAC manager was not working as specified (qiangxue)yii\db\ActiveQuery::indexBy() may cause relational AR queries to generate incorrect relational results (qiangxue)yii\di\Container did not handle the $config parameter well in case when it does not have a default value (qiangxue)yii.activeForm.destroy() did not remove submit event handlers (qiangxue)yii\db\ActiveRecord::afterSave()` (cebe, qiangxue)DateTime->format('U')` casted to double to allow correct date formatting (pgaultier)yii\db\mysql\Schema (terazoid, qiangxue)yii\di\Container::has() did not return correct value (mgrechanik, qiangxue)yii\helpers\FileHelper::copyDirectory() pattern not working (klimov-paul)yii\base\ErrorHandler class from the app namespace (cebe)yii\di\ServiceLocator still returns the old component after calling set() with a new definition (qiangxue)CaptchaAction was using a wrong content type (MDMunir, qiangxue)yii\db\QueryBuilder (cebe)yii\console\Controller::select() accept empty input as '0' value (lynicidn)yii\helpers\FileHelper::normalizePath() to allow a (.) for the current path. (skotos)asArray, it is not respected by the via relational query (qiangxue)MessageController::saveMessagesToDb() (advsm)Captcha (qiangxue, klevron)yii\filters\HttpCache does not work as expected when session is started before the filter (qiangxue)GridView may generate two different pagers/sorters if the layout configures two pagers/sorters (qiangxue)yii\base\DynamicModel::validateData() does not call validate() if the $rules parameter is empty (qiangxue)ActiveRecord::unlinkAll(). (qiangxue, cebe)yii\widgets\ActiveField custom error selector not functioning (qiangxue)QueryBuilder::batchInsert() does not typecast input values (qiangxue)yii\base\Formatter by converting strings to float (kartik-v)yii\rbac\PhpManager::getChildren() returns null instead of expected empty array (qiangxue)template with encodeLabel => false (creocoder, umneeq)yii\widgets\ActiveForm::errorSummaryCssClass when it contains multiple classes (creocoder, umneeq)yii\helpers\Html::to() should not prefix base URL to URLs that already contain scheme (qiangxue)yii.handleAction() in yii.js does not correctly detect if a hyperlink contains useful URL or not (joni-jones, qiangxue)yii\log\FileTarget::rotateByCopy to avoid any rename (cebe)Yii::$app->session may cause a PHP error (qiangxue)yii\helpers\Html::dropDownlist() options encodeSpaces was not applied to subgroups (MDMunir)yii\captcha\CaptchaValidator clientside error message wasn't formed properly (samdark)SHOW CREATE TABLE query in yii\db\mysql\Schema (stevekr)yii\widgets\Pjax was incorrectly setting container id (mitalcoi)SqlDataProvider does not work with Oracle and SQL Server (qiangxue, miramir)yii\web\UploadedFile and return null if no file was uploaded (OmgDef)yii message/extract wasn't properly writing to po files in case of multiple categories (samdark)yii\base\Security::compareString() timing depend only on length of $actual input and add unit test. (tom--)yii\helpers\StringHelper::byteSubstr()` returning empty string on null $length param (mbman)yii\base\Model::isAttributeRequired() should check if the when option of the validator is set (thiagotalma)yii help command was listing incorrect action names for methods like actionSayNO (samdark)yii\web\AssetConverter (samdark)yii\test\BaseActiveFixture::unload() does not clean up the internal cached data (qiangxue)yii\filters\auth\CompositeAuth should not trigger error as long as one of the methods succeeds (qiangxue)yii\console\controllers\MessageController handles category name containing dot incorrectly (klimov-paul)yii\db\ActiveQuery is used to build sub-queries, its WHERE clause is not correctly generated (qiangxue)joinWith() called by a relation was ignored by yii\db\ActiveQuery (stepanselyuk)yii\rest\CreateAction, yii\rest\UpdateAction and yii\rest\DeleteAction should throw 500 error if the model operation returns false without validation errors (qiangxue)UniqueValidator and ExistValidator did not respect query conditions added by default scope (qiangxue)yii\widgets\ActiveForm::validationDelay should be applied to user types only (qiangxue)yii\console\controllers\CacheController does not check if cache component instance of 'yii\caching\Cache' (klimov-paul)yii\console\Application::runAction() (samdark)yii\web\UrlManager (klimov-paul)yii\captcha\CaptchaAction (eXprojects, cebe)yii\helpers\StringHelper::byteSubstr() in some edge cases (cebe)yii\helpers\Security converted into application component, cryptographic strength improved (klimov-paul)yii\helpers\Inflector::camel2id() to handle consecutive uppercase chars (schmunk)yii\base\Module::getInstance() to allow accessing the module instance from anywhere within the module (qiangxue)yii\web\CookieCollection::has() will return false for expired or removed cookies (qiangxue)yii\db\Query::where() operand format (samdark)yii\widgets\ActiveForm::enableClientScript to support turning on and off client side script generation (qiangxue)yii\db\IntegrityException is now thrown on database integrity errors instead of general yii\db\Exception (samdark)yii\caching\MemCache::persistentId and yii\caching\MemCache::options (qiangxue)yii\helpers\Html helper (exromany, qiangxue)yii\helpers\Html::errorSummary() (qiangxue)yii\debug\Module::enableDebugLogs to disable logging debug logs by default (qiangxue)yii\rbac\PhpManager now supports more compact data file format (qiangxue)GridView filters (ivan-kolmychek)yii\filters\auth\CompositeAuth will send out challenges from all auth methods (qiangxue)useTablePrefix option to the model generator for Gii (horizons2)yii\filters\AccessControl::user to support access control with different actors (qiangxue)export() and exportAsString() methods to yii\helpers\BaseVarDumper (klimov-paul)yii\widgets\ActiveForm::fieldConfig (qiangxue)$checkAjax to yii\web\User::loginRequired() (qiangxue)yii\filters\HttpCache (qiangxue)View::theme using a class name (netyum, qiangxue)yii\mail\BaseMailer generates better text body from html body (armab)value in defaultValueValidator to be a closure (Alex-Code)yii.activeForm.js now supports adding/removing fields dynamically (qiangxue)yii\caching\FileCache::gc() (klimov-paul)yii\helpers\Html::encode() now replaces invalid code sequences with "�" (DaSourcerer)unlinkAll() method to Active Record to remove all records of a model relation (NmDimas, samdark, cebe)yii\filters\HttpCache::sessionCacheLimiter (qiangxue)extensions in application config (samdark)yii\log\FileTarget (pawzar)yii\validators\CompareValidator::type to support type conversion before comparing values (qiangxue)data-* attributes (armab)currencyCode to yii\i18n\Formatter (leandrogehlen)yii\widgets\Menu (arturf)mime.types file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder)yii\web\User::enableSession to support authentication without using session (qiangxue)yii\db\Connection (qiangxue)yii\validators\FileValidator::mimeTypes to support validating MIME types of files (Ragazzo)yii\validators\FileValidator::checkExtensionByMimeType to support validating file types against file mime-types (Ragazzo)yii\console\controllers\BaseMigrateController extracted (klimov-paul)yii\widgets\Breadcrumbs::$links. Allows individual link to have its own template (creocoder, umneeq)yii\helpers\Inflector::slug() improvements (samdark)
yii\helpers\Inflector::transliterate() that could be replaced with custom translit implementation.yii\behaviors\BlameableBehavior, yii\behaviors\SluggableBehavior and yii\behaviors\TimestampBehavior (creocoder)$message variable (qiangxue)yii\widgets\Menu to encode each item's label separately (creocoder, umneeq)init event to yii\bd\ActiveQuery classes (qiangxue)yii\rbac\PhpManager adjustments (samdark)
authFile. Added itemFile, assignmentFile and ruleFile.createdAt and updatedAt are now properly filled with corresponding file modification time.save() and load() are now protected instead of public.yii\helpers\FileHelper, added $options parameter in yii\helpers\FileHelper::removeDirectory() (resurtm)changedAttributes of afterSave Event now contain old values (dizews)yii\helpers\Security::generateRandomBytes(), improved tests (samdark)yii\helpers\Html::error() and yii\helpers\Html::errorSummary() are now accepting encode option. If set to false it prevents encoding of error messages (samdark)yii\base\Security.beforeCopy, afterCopy, forceCopy properties to yii\web\AssetManager (cebe)yii\widgets\ActiveForm::validateOnBlur and yii\widgets\ActiveField::validateOnBlur (qiangxue)absoluteAuthTimeout to yii\web\User (ivokund, nkovacs)yii\filters\HttpCache failed to comply to RFC 7232 (DaSourcerer)inline parameter to yii\web\Response::xSendFile() (klimov-paul)yii\widgets\ActiveForm (Alex-Code)yii\caching\MemCache (xjflyttp)yii\web\UrlRule (tadaszelvys)yii\grid\ActionColumn buttons Closure call (disem)yii\behaviors\Sluggable (klimov-paul)yii\web\Response::setDownloadHeaders() (pawzar)yii\db\Schema::createColumnSchema() to be able to customize column schema used (mcd-php)yii\helpers\BaseFileHelper::findFiles() (klimov-paul)yii\widgets\ActiveForm and yii\widgets\ActiveField validation errors is now configurable (Alex-Code)yii\web\Session::addFlash() (restyler)yii\helpers\FileHelper::mimeMagicFile (qiangxue)$pageSize parameter to yii\data\Pagination::createUrl() to allow creating URLs with arbitrary page sizes (cdcchen, qiangxue)beforeFilter and afterFilter JS events to GridView (kartik-v)yii\widgets\ActiveForm (qiangxue)$autoRenew parameter to yii\web\User::getIdentity() (qiangxue)yii\helpers\Inlfector::$transliterator that can be used to customize intl transliteration (zinzinday)IN condition (qiangxue)yii\web\UrlManager::addRules() to simplify adding new URL rules (qiangxue)yii\console\Controller::EXIT_CODE_NORMAL and yii\console\Controller::EXIT_CODE_ERROR constants (samdark)yii\console\MigrateController now returns yii\console\Controller::EXIT_CODE_ERROR in case of failed migration (samdark)yii\base\ErrorHandler::unregister()` for unregistering the ErrorHandler (cebe)all option to yii\console\controllers\MigrateController::actionDown() action (creocoder, umneeq)exist validator (creocoder)FileDependency::fileName (qiangxue)hideOnSinglePage to yii\widgets\LinkPager (arturf)in validator (creocoder)yii\helpers\Inflector::slug() to support more cases for Russian, Hebrew and special characters (samdark)yii\web\Response::enableCsrfCookie to support storing CSRF tokens in session (qiangxue)yii\db\ColumnSchema::typecast() into two methods phpTypecast() and dbTypecast() to allow specifying PDO type explicitly (cebe)yii\base\Formatter functionality has been merged into yii\i18n\Formatteryii\base\Formatter classyii\validators\DateValidatorto support ICU date format and use the format defined in yii\i18n\Formatter by default (cebe)yii\console\controllers\AssetController is now using hashes instead of timestamps (samdark)yii\rbac\DbManager is now initialized via migration (samdark)yii\widgets\ActiveForm::fieldConfig will be merged recursively with the $options parameter in yii\widgets\ActiveForm::field() (qiangxue)yii\base\InvalidCallException, yii\base\InvalidParamException, yii\base\UnknownMethodException are now extended from SPL BadMethodCallException (samdark)View. Added yii\helpers\Html::csrfMetaTags() and its call to main layout files (qiangxue)$type parameter to IdentityInterface::findIdentityByAccessToken() (qiangxue)yii.allowAction() and modified yii.confirm() in yii.js to support callbacks (tanakahisateru)yii\grid\GridView now allows any character (except ":") in the attribute part of the shorthand syntax for columns (rawtaz)$key as a parameter to the callable specified via yii\grid\DataColumn::value (mdmunir)yii\db\Connection::beginCache() and endCache() are removed.yii\db\Connection::cache() and noCache().Command::cache() and noCache().yii\db\Connection::queryCacheDuration is now used as a default cache duration parameter.sourceLanguage and language are now en-US in order for i18n formatter to work correctly (samdark)fileinfo PHP extension to the basic requirement of Yii (Ragazzo)yii\validators\FileValidator::types property is renamed to yii\validators\FileValidator::extensions (Ragazzo)yii\web\View::registerAssetFiles() to protected (samdark)MailEvent class to yii\mail namespace (cebe)container option from yii\helpers\Html::checkbox() and yii\helpers\Html::radio() (creocoder)Yii::$app->session->setFlash() will be removed only if they are accessed (qiangxue)yii\log\FileTarget::$rotateByCopy now defaults to true to work on windows by default (cebe)yii\caching\GroupDependency to TagDependency and added support for associating multiple tags to a single cached data item (qiangxue)mail component renamed to mailer, yii\log\EmailTarget::$mail renamed to yii\log\EmailTarget::$mailer (samdark)yii\mail\BaseMailer::compose() will not overwrite the message parameter if it is explicitly provided (qiangxue)SyslogTarget::facility from LOG_SYSLOG to LOG_USER (dizews)yii\db\BaseActiveRecord::populateRecord() now silently hide selected columns that are not defined in AR instead of failing with an error (miramir)yii\widgets\LinkPager::hideOnSinglePage is now true by default (samdark)$data from signature of yii\rbac\ManagerInterface (samdark)yii\helpers\Html::ul() and ol() will return an empty list tag if an empty item array is given (qiangxue)yii\helpers\Url now uses UrlManager to determine base URL when generating URLs (qiangxue)inline and mimeType options to all file downloading methods provided in yii\web\Response (qiangxue)YII_PATH to YII2_PATH (qiangxue)yii\helpers\Url::to() will no longer prefix relative URLs with the base URL (qiangxue)yii\widgets\LinkPager's nextPageLabel, prevPageLabel, firstPageLabel, lastPageLabel are now taking false instead of null for "no label" (samdark)yii\base\ArrayableTrait::fields() from function ($field, $model) { to function ($model, $field) { (samdark)yii\widgets\ActiveForm (qiangxue)
beforeValidate(), beforeValidateAll(), afterValidate(), afterValidateAll(), ajaxBeforeSend() and ajaxComplete() from yii\widgets\ActiveForm.beforeValidate, afterValidate, beforeValidateAttribute, afterValidateAttribute, beforeSubmit, ajaxBeforeSend and ajaxComplete events to yii.activeForm jQuery plugin.ActiveFixture will reset table in its load() method instead of unload() (qiangxue)clearAll() and clearAllAssignments() in yii\rbac\ManagerInterface with removeAll(), removeAllRoles(), removeAllPermissions(), removeAllRules() and removeAllAssignments() (qiangxue)$user as the first parameter of yii\rbac\Rule::execute() (qiangxue)yii\grid\DataColumn::getDataCellValue() visibility is now public to allow accessing the value from a GridView directly (cebe)yii\data\ActiveDataProvider::$query will not be modified directly with pagination and sorting anymore so it will be reuseable (cebe)yii\rest\ActiveController::$transactional property and connected functionality (samdark)keyPrefix property of cache components to be null (qiangxue)prefix column to yii\log\DbTarget to have the same amount of information logged as in files and emails (cebe)limit(null) instead of limit(-1) in migration controller to be compatible to more backends (cebe)yii\web\Request::cookieValidationKey must be explicitly specified for each application that wants to use cookie validation (qiangxue)yii\composer\Installer::postCreateProject() and modified the syntax of calling installer methods in composer.json (qiangxue)Application::controllerMap and Application::modules, the former will take precedence (qiangxue)yii\helpers\Html::activeCheckbox() and activeRadio() will generate labels by default using the corresponding attribute labels (qiangxue)yii\behaviors\SluggableBehavior that fills the specified model attribute with the transliterated and adjusted version to use in URLs (creocoder)yii\filters\Cors CORS filter to allow Cross Origin Resource Sharing (pgaultier)yii\test\ArrayFixture (Ragazzo)yii\base\InvalidValueException (qiangxue)yii\caching\ArrayCache (cebe)yii\console\controllers\AssetController does not override 'js' and 'css' for compressed bundles (klimov-paul)visible setting for yii\widgets\DetailView doesn't work as expected (qiangxue)yii\validators\FileValidator and yii\validators\ImageValidator still trigger uploadRequired error in some case when skipOnEmpty is true and no upload is provided (qiangxue)yii\validators\StringValidator is accessing undefined property (qiangxue)enableAutoLogin to basic and advanced project templates so "remember me" now works properly (samdark)yii\jui\SliderInput wasn't properly initialized (samdark)yii\widgets\ActiveForm is creating duplicated messages in error summary (qiangxue)yii\helpers\Inflector::camelize() (qiangxue)$_SERVER['HTTPS'] in yii\web\Request::getIsSecureConnection() (ginus, samdark)Session::regenerateID() call (qiangxue)run() to execute another action (qiangxue)yii\console\controllers\FixtureController apply/clear actions. (Ragazzo)TRUNCATE changed to DELETE to avoid PostgreSQL tables checks (and truncating all tables) (Ragazzo)init --env when called without parameter actually specified (samdark)yii\helpers\Html::activeCheckbox() wasn't respecting custom values for checked/unchecked state (klevron, samdark)yii\base\Controller::findLayoutFile() returns incorrect file path when layout name starts with a slash (qiangxue)yii\db\QueryBuilder::buildInCondition() fails to handle array not starting with index 0 (qiangxue)yii\gridview\DataColumn generates incorrect labels when used with nosql DB and there is no data (qiangxue)yii\base\Theme::pathMap did not support dynamic update with path aliases (qiangxue)$_SERVER['DOCUMENT_ROOT'] is empty (samdark)missingTranslation-event (cebe)app message category was always en no matter which application sourceLanguage was used (samdark)yii\widgets\GridView filtering with Pjax (tonydspaniard)yii message tool wasn't updating message table (mitalcoi)yii\helpers\Html::textArea()should respectname` option. (qiangxue)https://bugs.php.net/bug.php?id=66606 (dizews)yii\validators\FileValidator::isEmpty() always returns true for validate multiple files (ZhandosKz)yii\rest\CreateAction::run() was using obsolete yii\web\Controller::createAbsoluteUrl() method (tonydspaniard)yii\captcha\CaptchaAction::run() was using obsolete yii\web\Controller::createUrl() method (tonydspaniard)yii\grid\GridView filterUrl parameters (qiangxue, AlexGx)app* or yii* default app and yii sources were not removed (samdark)yii\cache\DbCache while enabling schema caching may cause infinite loops (qiangxue)reusable is set true (qiangxue)yii\bootstrap\Nav and yii\bootstrap\Dropdown were generating wrong ids for submenus (arturf)yii\web\CookieCollection::has() always returns false for cookies from browser (sonicgd)ORDER BY clause when it is not needed (qiangxue)yii\db\TableSchema::sequenceName for PostgreSQL should remove the enclosing quotes (katzz0, qiangxue)Call to a member functionregisterAssetFiles()on a non-object in case of wrong sourcePath for an asset bundle (samdark)yii\jui\Spinner (samdark)yii\helpers\Json::encode()did not handle objects that implementJsonSerializable` interface correctly (cebe)yii\widgets\ActiveField::radio() and yii\widgets\ActiveField::checkbox() (jom)http://example.com//////site/about (samdark)yii\console\controllers\HelpController::getModuleCommands() issue where it attempts to scan a module's controller directory when it doesn't exist (jom)yii\base\Model::load() returned true if $data and formName were empty (samdark)yii\db\ActiveRelationTrait preventing yii\db\ActiveQuery from clearing events and behaviors on clone (jom)yii\db\Query::queryScalar() wasn't making SELECT DISTINCT queries subqueries (jom)$files instead of self::$_files[$key] to allow inheritance (pgaultier)yii\helpers\Inflector::slug() with intl transliteration. Improved transliteration char map. (tonydspaniard)yii\log\Target::logUser and added yii\log\Target::prefix to support customizing message prefix (qiangxue)Rule from RBAC Item (samdark, qiangxue)yii\validators\UniqueValidator and yii\validators\ExistValidator (qiangxue)ArrayHelper::getValue() (qiangxue, cebe)yii\web\View::renderAjax() and yii\web\Controller::renderAjax() (qiangxue)yii\helpers\Console::showProgress() with a better approach. See yii\helpers\Console::startProgress() for details (cebe)yii\widgets\ListView::viewParams (qiangxue)yii\web\Session::handler property (nineinchnick)yii\grid\ActionColumn::controller property to support customizing the controller for handling GridView actions (qiangxue)yii\web\User to start session only when needed. Also prepared it for use without session. (qiangxue)yii\bootstrap\Tabs::linkOptions (kartik-v)yii\web\Controller::createAbsoluteUrl() (samdark)yii\db\ActiveQuery::joinWith() and yii\db\ActiveQuery::innerJoinWith() to support joining with relations (qiangxue)createAbsoluteUrl() to force 'http' or 'https' (cebe)yii\db\BaseActiveRecord::markAttributeDirty() (qiangxue)BaseActiveRecord::updateAttributes() (qiangxue)yii\db\QueryBuilder::checkIntegrity() and yii\db\QueryBuilder::resetSequence() (Ragazzo)yii\db\Connection::$pdoClass property (Ragazzo)yii\widgets\ActiveField::label() (qiangxue)yii\db\ActiveRecord::tableName() now returns table name using yii\db\Connection::tablePrefix (creocoder)yii\bootstrap\NavBar with containerOptions, innerContainerOptions and renderInnerContainer (creocoder)@webroot and @web are now available right after the application is initialized (qiangxue)yii\grid\ActionColumn now allow to name buttons like {controller/action} (creocoder)yii message/extract is now able to generate .po files (SergeiKutanov, samdark)yii\base\ActionFilter will now mark event as handled when action run is aborted (cebe)filterWhere() method to yii\db\Query to allow easy addition of search filter conditions by ignoring empty search fields (samdark, cebe)filter property to yii\validators\ExistValidator and yii\validators\UniqueValidator to support adding additional filtering conditions (qiangxue)yii message/extract is now able to save translation strings to database (kate-kate, samdark)en from en-US if message translation isn't found (samdark)en from en-US if file not found (samdark)sourceLanguage and language are now en (samdark)yii\widgets\DetailView now allow use category.name as attribute name (creocoder)yii\widgets\DetailView now allow use custom label in string format like name:format:label (creocoder)yii\web\AccessDeniedHttpException to yii\web\ForbiddenHttpException, added new commonly used HTTP exception classes (danschmidt5189)Html helper now supports rendering "data" attributes (qiangxue)yii migrate now automatically creates migrations directory if it does not exist (samdark)yii\web\AssetManager::publish(), yii\web\AssetManager::getPublishedPath() and yii\web\AssetManager::getPublishedUrl() to support aliases (vova07)X-HTTP-Method-Override header in yii\web\Request::getMethod() (pawzar)addCssStyle(), removeCssStyle(), cssStyleFromArray() and cssStyleToArray() to yii\helpers\Html (qiangxue, kartik-v, Alex-Code)dataType for $.ajax call in yii.activeForm.js (Borales)relatedModel.attribute, will be received from the related model if it available (djagya)yii\db\Query::count() and other query scalar methods now properly handle queries with GROUP BY clause (qiangxue)yii\base\Formatter (VinceG)yii\console\Controller::globalOptions() to options($actionID) to (make it possible to) differentiate options per action (hqx)yii\base\Formatter (drenty)yii\db\ActiveRecord::loadDefaultValues() that fills default values from DB schema (samdark)yii\validators\FilterValidator::skipOnArray so that filters like trim will not fail for array inputs (qiangxue)DateTimeInterface in yii\i18n\Formatter (ivokund)isEmpty check for all validators (qiangxue)yii\base\Application::bootstrap and yii\base\BootstrapInterface to support running bootstrap classes when starting an application (qiangxue)afterSave() so information about changed attributes is available in afterSave-event (cebe)yii\base\Application::end() (qiangxue)favicon.ico and robots.txt to default project templates (samdark)yii\base\Widget::autoIdPrefix to support prefixing automatically generated widget IDs (qiangxue)init of advanced application now allows to specify answer for overwriting files via init --overwrite=n (samdark)yii\db\TableSchema::fullName property (qiangxue)yii\codeception\TestCase now supports loading and using fixtures via Yii fixture framework (qiangxue)beforeRun() and afterRun() to yii\base\Action (qiangxue)yii\base\Formatter (dizews)yii\web\View::POS_LOAD (qiangxue)yii\web\Response::clearOutputBuffers() (qiangxue)yii\db\QueryBuilder::buildLimit() to support big numbers (qiangxue)yii\data\Pagination::getLinks() (qiangxue)yii\data\Pagination (qiangxue)yii\web\UrlRuleInterface and yii\web\CompositeUrlRule (qiangxue)yii\web\Request::getAuthUser() and getAuthPassword() (qiangxue)yii\widgets\BaseListView (johonunu)isAssociative() and isIndexed() to yii\helpers\ArrayHelper (qiangxue)addSelect to yii\db\Query (Alex-Code)yii\db\Connection (nineinchnick, resurtm)yii\widgets\ActiveField::hiddenInput() (qiangxue)Sort to use comma to separate multiple sort fields and use negative sign to indicate descending sort (qiangxue)yii\web\User::loginRequired() now returns the Response object instead of exiting the application (qiangxue)yii\web\Session::autoStart and added hasSessionId. Session will be automatically started when accessing session data (qiangxue)yii\db\QueryBuilder::buildLikeCondition() will now escape special characters and use percentage characters by default (qiangxue)yii\helpers\Html::activeCheckboxList() and Html::activeRadioList() will submit an empty string if no checkbox/radio is selected (qiangxue)yii\captcha\Captcha::options (qiangxue)yii\base\Controller::getActionParams() (samdark)yii\grid\CheckboxColumn now renders checkboxes whose values are the corresponding data key values (qiangxue)yii\web\Response::sendFile() and other file sending methods will not send the response (qiangxue)yii\db\Connection::tablePrefix default value now tbl_ (creocoder)beforeSubmit in yii.activeform is now executed after validation and before form submission (6pblcb)yii\web\Request::acceptedLanguages to acceptableLanguages (qiangxue)yii\web\Request::getPost(), getPut(), getDelete(), getPatch() in favor of getBodyParam() (cebe)yii\web\Request::get() to getQueryParams() and getRestParams() to getBodyParams() (cebe)yii\web\Request::get($name = null, $defaultValue = null) and yii\web\Request::post($name = null, $defaultValue = null) (samdark)yii\helpers\FileHelper (nineinchnick)yii\web\Request::acceptTypes and renamed yii\web\Request::acceptedContentTypes to acceptableContentTypes (qiangxue)yii\web\AccessDeniedHttpException to yii\web\ForbiddenHttpException (danschmidt5189)yii\db\ActiveRelation class and yii\db\ActiveRelationInterface, moved the functionality to yii\db\ActiveQuery.
All relational queries are now directly served by ActiveQuery allowing to use custom scopes in relations
and also to declare arbitrary queries as relations.
Also removed yii\db\ActiveRecordInterface::createActiveRelation() (cebe)* category pattern will match all categories that do not match any other patterns listed in yii\i18n\I18N::translations (qiangxue, Ragazzo)return in Widget::run (samdark)yii\helpers\StringHelper::diff(), Moved phpspec/php-diff dependency from yiisoft/yii2 to yiisoft/yii2-gii (samdark)yii\db\QueryBuilder will now append UNION statements at the end of the primary SQL (qiangxue)tinyint(1) as integer instead of boolean (qiangxue)yii\base\Model::DEFAULT_SCENARIO to yii\base\Model::SCENARIO_DEFAULT (samdark)yii\db\ActiveRecord::create() to populateRecord() and changed signature. This method will not call instantiate() anymore (cebe)yii\widgets\MaskedInput now defaults to form-control (qiangxue)Yii::$app->exception has now moved to Yii::$app->errorHandler->exceptionyii\base\ErrorHandler was split into yii\web\ErrorHandler and yii\console\ErrorHandleryii\widgets\DetailView's name:format:label to attribute:format:label to match GridView (samdark)yii\base\ErrorException now extends \ErrorException (samdark)yii\base\Module::controllerPath is now read only, and all controller classes must be namespaced under Module::controllerNamespace. (qiangxue)yii\helpers\Url.yii\helpers\Html::url(), use yii\helpers\Url::to() instead.yii\web\Controller::createUrl() and yii\web\Controller::createAbsoluteUrl(), use yii\helpers\Url::toRoute() instead.yii\web\Controller::getCanonicalUrl(), use yii\helpers\Url::canonical() instead.UrlManager (gonimar, qiangxue)FileCache::keyPrefix defaults to empty string now (qiangxue)Application::preload in favor of Application::bootstrap (qiangxue)yii\base\Formatter to Y-m-d and H:i:s (qiangxue)tbl_ default for table prefix (samdark)yii\db\ActiveRecord::createQuery() with find() to simplify customizing yii\db\ActiveQuery classes (qiangxue)findOne() and findAll() to replace the usage of yii\db\ActiveRecord::find($condition). (samdark, qiangxue)yii\web\Request::getUserIP() will return null if it cannot detect user IP address (qiangxue)yii\jui\Widget::clientEventsMap to clientEventMap (qiangxue)ActiveRecord::getPopulatedRelations() to getRelatedRecords() (qiangxue)attributeName and className to targetAttribute and targetClass for UniqueValidator and ExistValidator (qiangxue)yii\widgets\InputWidget::options (qiangxue)urlCreator and button creators for yii\gridview\ActionColumn (qiangxue)4.6.*.index.php,
index-test.php and yii files to point to the new location of Yii.php (qiangxue, cebe)-local config not to expose it to VCS (samdark)yii\web\Request::acceptedLanguages to acceptableLanguages (qiangxue)yii\base\Arrayable from yii\base\Object (qiangxue)View at the end of endBody(). It was done in endPage() previously (qiangxue)csrf-var to csrf-param for CSRF header name (Dilip)mails to mail (qiangxue)fooVar to fooParam for various classes (qiangxue)
yii\widgets\ActiveForm::ajaxVar to ajaxParamyii\data\Pagination::pageVar to pageParamyii\data\Sort::sortVar to sortParamyii\web\Request::csrfVar to csrfParamyii\web\Request::methodVar to methodParamyii\web\UrlManager::routeVar to routeParamyii\web\Session::flashVar to flashParamyii\web\User::idVar to idParamyii\web\User::authTimeoutVar to authTimeoutParamyii\web\User::returnUrlVar to returnUrlParamyii\base\View::viewFile and removed yii\base\ViewEvent::viewFile (qiangxue)yii\base\Controller::afterAction(), yii\base\Module::afterAction() and yii\base\ActionFilter::afterAction() to pass $result by value instead of reference (qiangxue)yii\base\Extension::init() is renamed to bootstrap() (qiangxue)getComponent() and setComponent() in yii\base\Application and yii\base\Module are renamed to get() and set() respectively. (qiangxue)Yii::createObject() is changed. Constructor parameters must be passed as the second parameter. (qiangxue)Yii::$objectConfig is removed. You should use Yii::$container->set() to configure default settings of classes. (qiangxue)yii\grid\Column::getDataCellContent() and renamed yii\grid\DataColumn::getDataCellContent() to yii\grid\DataColumn::getDataCellValue() (cebe)yii\log\Logger is split into yii\log\Logger and yii\log\Dispatcher. (qiangxue)yii\filters (qiangxue)yii\rbac\PhpManager. (qiangxue)yii\web\User::checkAccess() to yii\web\User::can() (qiangxue)yii\di\Container and yii\di\ServiceLocator (qiangxue)yii\widgets\Pjax and enhanced yii\grid\GridView to work with Pjax to support AJAX-update (qiangxue)yii\filters\ContentNegotiator to support response format and language negotiation (qiangxue)yii\base\DynamicModel to support ad-hoc data validation (qiangxue)AttributeBehavior and BlameableBehavior, and renamed AutoTimestamp to TimestampBehavior (lucianobaraglia, qiangxue)yii\web\ViewAction that allow you to render views based on GET parameter (samdark)yii\log\SyslogTarget that is able to write log to syslog (miramir, samdark)yii\bootstrap\ActiveForm and yii\bootstrap\ActiveField (mikehaertl)yii\widgets\ActiveForm::beginField() and endField() (qiangxue)yii\codeception\DbTestCase (qiangxue)yii\web\GroupUrlRule (qiangxue)yii\filters\RateLimiter (qiangxue)HttpBasicAuth, HttpBearerAuth, QueryParamAuth, and CompositeAuth (qiangxue)yii\web\HtmlResponseFormatter and yii\web\JsonResponseFormatter (qiangxue)Official extensions released in this version:
Elasticsearch integration: ActiveRecord and Query
Redis integration: ActiveRecord, Cache and Session
Sphinx integration: ActiveRecord and Query