This is the core framework code of Yii 2.
This repository is a read-only git subsplit of https://github.com/yiisoft/yii2. Please submit issue reports and pull requests to the main repository. For license information check the LICENSE-file.
The preferred way to install the Yii framework is through composer.
Refer to Bower and NPM Assets installation to select an asset installation method.
Either run
composer require yiisoft/yii2
or add
"yiisoft/yii2": "~2.0.0",
to the require section of your composer.json.
GHSA-cjcc-p67m-7qxm
while attaching behavior defined by __class
array key (erickskrauch)yii\validators\FileValidator
(bizley)Widget::end()
when widget configured using callable (rob006, jrajamaki)\yii\helpers\BaseArrayHelper::map
(chriscpty)paragonie/random_compat
dependency (timwolla)ActiveRecord::getDirtyAttributes()
for JSON columns with multi-dimensional array values (brandonkelly)ColumnSchema->type
on MSSQL version less then 2017 (axeltomasson)MaskedInput::init()
method (alxlnk)\yii\filters\Cors::actions()
when attached to a module (timkelty)BaseUrl::isRelative($url)
performance (sammousa, bizley, rob006)BaseUrl::isRelative($url)
method in yii\helpers\BaseUrl
(ggh2e3)Link::serialize(array $links)
method in yii\web\Link
(ggh2e3)yii\widgets\Menu
bug when using Closure for active item and adding additional tests in tests\framework\widgets\MenuTest
(atrandafir)addCheck()
and dropCheck()
(@bobonov)yii\validators\FileValidator
to not limit some of its rules only to array attribute (bizley)console\controllers\MessageController
when saving translations to database: fixed FK error when adding new string and language at the same time, checking/regenerating all missing messages and dropping messages for unused languages (atrandafir)yii\console\controllers\ServeController
to specify the router script (terabytesoftw)boolean
in MSSQL
(terabytesoftw)\yii\db\ColumnSchema::typecast()
(rhertogh)ezyang/htmlpurifier
dependency to version 4.17
(@terabytesoftw)BaseActiveRecord::loadRelations()
and BaseActiveRecord::loadRelationsFor()
to eager load related models for existing primary model instances (PowerGamer1)ErrorHandler::$memoryReserveSize
(antonshevelev, rob006)yii\helpers\BaseStringHelper::mask()
method for string masking with multibyte support (salehhashemi1992)yii\helpers\BaseStringHelper::findBetween()
to retrieve a substring that lies between two strings (salehhashemi1992)ActiveQueryTrait::findWith()
(renkas)yiisoft/yii2-coding-standards
to composer require-dev
and lint code to comply with PSR12 (razvanphp)PHP
version to 7.3
(@terabytesoftw)yii\caching\CallbackDependency
to allow using a callback to determine if a cache dependency is still valid (laxity7)Query::groupBy(null)
causes error for PHP 8.1: trim(): Passing null to parameter #1 ($string) of type string is deprecated
(uaoleg)yii\log\FileTarget
to not export empty messages (terabytesoftw)yii\web\Controller::bindInjectedParams()
to not throw error when argument of ReflectionUnionType
type is passed (bizley)GridView
in some cases calling Model::generateAttributeLabel()
to generate label values that are never used (PowerGamer1)\yii\console\widgets\Table
widget (rhertogh)ActiveRecord::getAttributeLabel()
with regard of overriding in primary model labels for attributes of related model in favor of allowing such overriding for all levels of relation nesting (PowerGamer1)ArrayHelper::keyExists()
and ::remove()
functions when the key is a float and the value is null
(rhertogh)yii\i18n\Formatter
to not throw error Unknown named parameter
under PHP 8 (arollmann)\yii\helpers\Console::select()
(rhertogh)Cookie::$expire
from int
to int|string|\DateTimeInterface|null
(rhertogh)DbManager::getRolesByUser()
to return stale data (michaelarnauts)yii\behaviors\AttributeTypecastBehavior
(aivchen)yii\grid\CheckboxColumn
: "check all" checkbox not being checked on page load when all data row checkboxes are initially checked; clicking checkboxes triggered "change" event for other checkboxes that do not change their state; "check all" checkbox not being checked when disabled checkboxes are present and clicking last non-checked data row checkbox (PowerGamer1)yii\validators\DateValidator
(PowerGamer1)framework\mimeType.php
to the actual value. Fix typo in build/controllers/MimeTypeController.php
(DeryabinSergey)NULL
result with scalar fetchMode (Arkeins)$typeMap
list for MySQL (sohelahmed7)yii\data\Sort
to generate a proper link when multisort is on and attribute has a default sort order set (bizley)$query->orderBy(null)
(uaoleg)yii\validators\NumberValidator
to use a programmable message for the value validation (bizley)StringHelper::truncate(null, 10)
causes error Deprecated: mb_strlen(): Passing null to parameter #1 ($string) of type string is deprecated
(uaoleg)yii\mutex\MysqlMutex
keyPrefix
expression param binding (kamarton)yii\web\Response::redirect()
to prevent setting headers with URL containing new line character (bizley)serializeModel()
when working with an array of models (zucha)yii\base\DynamicModel
validation with validators that reference missing attributes (michaelarnauts)yii\build\controllers\MimeTypeController::generateMimeTypesFile()
(rhertogh)yii\rbac\DbManager::getRolesByUser()
(manchenkoff)class
array in yii\helpers\BaseHtml::renderTagAttributes()
to prevent unwanted spaces (MoritzLost)$variations
definition in yii\filters\PageCache
(nadar)yii\web\Request
for getUserIP()
and getSecureForwardedHeaderTrustedParts()
(rhertogh)$this->oldAttributes
in BaseActiveRecord::getDirtyAttributes()
(thiagotalma)$fallbackToMaster
as true
to getSlavePdo()
to ensure it isn't affected by child class with changed defaults (developedsoftware)yii\helpers\BaseFileHelper::getExtensionByMimeType()
to get the most common extension for a given MIME type (rhertogh)yii\web\View::isPageEnded
to protected
(lubosdz, samdark)yii\base\Model
(manchenkoff)yii\web\AssetManager
(manchenkoff)CompositeAuth::authenticate()
introduced in #19418 (WinterSilence)yii\widgets\ActiveField
(kv4nt)yii\helpers\BaseHtml::renderSelectOptions()
to properly render boolean selection (bizley)date
and time
columns (bizley)CompositeAuth
introduced in #19418 (SamMousa, WinterSilence, samdark)BaseArrayHelper::getValue()
(lav45)yii\rbac\DbManager
(samuelexyz)retryHandler
when yii\db\Command::reset()
called (erickskrauch)Validator::getAttributeNames()
in AttributeTypecastBehavior::detectAttributeTypes()
(WinterSilence)yii\web\SessionIterator
class methods for PHP 8.1 (virtual-designer)null
to trim() (longthanhtran)finfo_open
for tar.xz as application/octet-stream
on PHP 8.1 (longthanhtran)$view
to user's callback in yii\validators\InlineValidator::clientValidateAttribute()
(WinterSilence)yii\log\FileTarget
locking and always rotate files only by copy (bizley, mikehaertl)yii\base\Model::__clone()
(WinterSilence)yii\caching\Dependency::generateReusableHash()
(WinterSilence)yii\helpers\BaseInflector
(WinterSilence)null
in yii\validators\FilterValidator::validateAttribute()
(bizley)yii\helpers\BaseHtml::renderSelectOptions()
giving wrong selection for boolean attributes (adnandautovic)yii\db\oci\Schema
(Arkeins)yii\web\GroupUrlRule
to properly normalize prefix (bizley)yii\grid\DataColumn
are empty (githubjeka)$fileMimeType
is null
in yii\validators\FileValidator::validateMimeType()
(bizley)yii\db\Query
(wa1kb0y)yii\helpers\BaseArrayHelper::htmlDecode()
(WinterSilence)yii\web\Response::redirect()
(bizley)yii\base\ErrorHandler
(WinterSilence)yii\web\SessionIterator
(WinterSilence)yii\validators\UniqueValidator
and yii\validators\ExistValidator
to respect skipOnError
option for target attributes (bizley)yii\filters\auth\CompositeAuth
ignoring only
and except
options (lesha724)yii\i18n\Formatter::getUnitMessage()
(WinterSilence)yii\db\Exception
(Roguyt)Inflector::camel2words()
introduced in #19204 (samdark)\yii\db\ActiveRelationTrait
(wvanheumen)exec()
function (WinterSilence, lubosdz)yii.validation.trim()
and replace deprecated jQuery.trim()
(WinterSilence)scss
converter in yii\web\AssetConverter::$commands
(WinterSilence)text/rtf
for mime-type application/rtf
(lesha724)yii\validators\TrimValidator
(WinterSilence)yii\web\UploadedFile::$fullPath
represents 'full_path' key added in PHP 8.1 (WinterSilence)yii\base\Model::attributes()
(WinterSilence)setBodyParams()
and getBodyParam()
in yii\web\Request
(WinterSilence, albertborsos)exit(1)
in yii\base\ErrorHandler::handleFatalError
(arrilot)yii\console\controllers\MessageController
(WinterSilence)yii\widgets\MaskedInput
(WinterSilence)\yii\web\Request::getServerPort()
(rhertogh)yii\db\ActiveRelationTrait
(stevekr)yii\filters\PageCache
to store original headers names instead of normalized ones (bizley)\Exception
to \Throwable
in BadRequestHttpException
and HttpException
(Dmitrijlin)yii\db\ExpressionInterface
as column in yii\db\conditions\InBuilder
(ntesic)$pagination
and $sort
to \yii\rest\IndexAction
for easy configuration (rhertogh)yii\caching\Cache::multiSet()
to use yii\caching\Cache::$defaultDuration
when no duration is passed (OscarBarrett)IdentityInterface::findIdentity()
returns null
(mikehaertl)StringHelper::dirname()
when passing string with a trailing slash (perlexed)Inflector::camel2words()
adding extra spaces (brandonkelly)yii\base\Controller::bindInjectedParams()
to not throw error when argument of ReflectionUnionType
type is passed (bizley)id
in MigrateController::addDefaultPrimaryKey()
(WinterSilence, samdark)yii\helpers\ArrayHelper::toArray()
for DateTime
objects in PHP >= 7.4 (rhertogh)yii\web\HeaderCollection::fromArray()
now ensures lower case keys (rhertogh)yii\helpers\Inflector::camel2words()
to work with words ending with 0 (michaelarnauts)MessageSource::getMessageFilePath()
(uaoleg)yiisoft/yii2-swiftmailer
before using as default mailer in yii\base\Application
(WinterSilence)yii\console\controllers\MessageController::$translator
(WinterSilence)attributes()
in yii\db\ActiveRecord::loadDefaultValues()
(WinterSilence)yii\db\Migration
functions up()
, down()
, safeUp()
and safeDown()
(WinterSilence, rhertogh)yii\base\Widget::end()
(papppeter)Request::getIsConsoleRequest()
may return erroneously when testing a Web application in Codeception (WinterSilence)validate_only
property for skipping form auto-submission (ptolomaues)View::endPage()
has been called (perlexed)yii\helpers\Json::$keepObjectType
and yii\web\JsonResponseFormatter::$keepObjectType
in order to avoid changing zero-indexed objects to array in yii\helpers\Json::encode()
(zebraf1)XmlResponseFormatter
(WinterSilence, samdark)XmlResponseFormatter::$objectTagToLowercase
option to lowercase object tags (WinterSilence, samdark)yii\helpers\BaseJson
(WinterSilence, samdark)yii\base\View::afterRender
method (LeoOnTheEarth)strpos
with strncmp
and remove redundant usage of array_merge
and array_values
(AlexGx)yii\widgets\ActiveField::addAriaAttributes()
(AnkIF)yii\base\Module::setControllerPath()
(WinterSilence)yii\helper\BaseHtml::$normalizeClassAttribute
to fix duplicate classes (WinterSilence)Component::hasEventHandlers()
and Component::trigger()
(WinterSilence)yii\validators\ExistValidator::checkTargetRelationExistence()
(WinterSilence)yii\log\Logger
to calculate profile timings no matter the value of the flush interval (bizley)yii\web\Request
to properly handle HTTP Basic Auth headers (olegbaturin)framework/assets/yii.activeForm.js
arrow function into traditional function for IE11 compatibility (marcovtwout)yii\caching\DbCache
to use configured cache table name instead of the default one in case of MSSQL varbinary column type detection (aidanbek)yii\web\ErrorHandler::encodeHtml()
to support strings with invalid UTF symbols (vjik)\yii\validators\ExistValidator::queryValueExists
to validate against an array of unique values (DrDeath72)yii\helpers\BaseStringHelper::mb_ucwords()
(WinterSilence)profilingAware
option to yii\log\Logger
to prevent breaking the profiling block messages pair when flushing them (bizley)$specials
array in yii\helpers\BaseInflector
(kjusupov)yii\helpers\BaseHtml::getInputIdByName()
(WinterSilence)yii serve
's --router
param to take an alias (markhuot)yii\web\User::checkRedirectAcceptable()
to public
(rhertogh)yii\i18n\Formatter
(bizley)yii\helpers\BaseFileHelper::changeOwnership()
and newFileMode
/newFileOwnership
properties to yii\console\controllers\BaseMigrateController
(rhertogh)yii\web\Cookie::SAME_SITE_NONE
constant (rhertogh)$_SERVER
details unless YII_DEBUG
is enabled (coolgoose)scheme
option for $options
argument for yii\i18n\Formatter::asUrl()
(bizley)yii\helpers\Json::$prettyPrint
(rhertogh)yii\validators\EmailValidator::$enableLocalIDN
(brandonkelly)yii\web\JsonParser::parse()
(WinterSilence)paragonie/random_compat
for random bytes and int generation (samdark)yii\db\BaseActiveRecord::unlink()
and unlinkAll()
to omit condition for on
property when it doesn't exist (bizley)yii\test\ActiveFixture
to use model's DB connection instead of the default one (margori, bizley)yii\db\BaseActiveRecord::unlink()
to not ignore on
conditions in via
relations (bizley)yii\db\Connection
to persist customized queryBuilder
configuration after the close()
→ open()
cycle (silverfire)yii\grid\ActionColumn
to render icons when no glyphicons are available (simialbi)yii\widgets\BaseListView
to properly render custom summary (sjaakp, bizley)yii\db\pgsql\Schema
to respect non-default PgSQL schema name for data types (theonedemon, silverfire)yii\caching\DbCache
to work with MSSQL, add normalizeTableRowData()
to yii\db\mssql\QueryBuilder::upsert()
(darkdef)yii\validators\NumberValidator
to disallow values with whitespaces (bizley)yii\data\SqlDataProvider
to properly handle SQL with ORDER BY
clause (bizley)yii\data\ActiveDataProvider
to handle DB connection configuration of different type than just yii\db\Connection
(bizley)yii\web\DbSession
to use the correct db if strict mode is used (Mignar)yii\validators\EmailValidator
to handle an edge case where IDN
is enabled, but fails ascii conversion for valid email addresses (ihitbuttons)yii\web\UrlManager
to instantiate cache only when it's actually needed (bizley)yii\db\Command::getRawSql()
to not replace query params in invalid places (sartor)maxlength
attribute for Html::activeInput()
and Html::activeTextArea()
based on length
parameter of validator (BSCheshir)NULL
and other expressions (darkdef)BaseActiveRecord
(samdark)yii\web\Cookie::$path
on yii\web\Response::sendCookies()
(mikk150)yii\di\Container
to properly resolve dependencies in case of PHP 8 union types (bizley)prepareSearchQuery
property in yii\rest\IndexAction
(programmis)yii\web\Controller::bindInjectedParams()
catches HttpException (pigochu)NumberValidator::$allowArray
(raidkon)yii\db\Query::all()
and indexBy
handling (bizley)ANSI
/ANSI_QUOTES
modes (brandonkelly)null
(bizley)db
component configuration in yii\data\ActiveDataProvider
(bizley)yii\base\ErrorException
(bizley)preg_split()
in \yii\console\Controller
(gazooz)yii\helpers\ArrayHelper::getValue()
for ArrayAccess objects with explicitly defined properties (samdark)appendTimestamp
option for non-root-relative base URLs (bizley)getLastInsertID()
to get PK from insert query to lower collision probability for concurrent inserts (darkdef)yii\grid\GridView
in yii\grid\DataColumn
(PowerGamer1)EVENT_RESET
and EVENT_FINISH
events to yii\db\BatchQueryResult
(brandonkelly)compareValue
in CompareValidator
can now take a closure returning a value (mmonem)yii\log\Logger::$dbEventNames
that allows specifying event names used to get statistical results (profiling) of DB queries (atiline)yii\db\Query::all()
and yii\db\Query::$indexBy
, the yii\db\Query::$indexBy
is auto inserted into yii\db\Query::$select
- the same as in yii\db\Query::column()
(OndrejVasicek, samdark, bizley)X-Original-Host
header (brandonkelly)getSchemaMetadata()
in MSSQL driver to get clean names from the schema (darkdef)assets/yii.activeForm.js
incorrect target selector for validatingCssClass
(brussens)ActiveRecord::refresh()
to load data from the database even if cache is enabled (hooman-mirghasemi)yii\helpers\BaseArrayHelper::filter()
(allowing filtering arrays with numeric keys) (bizley)Module::setModule()
and Module::setModules()
(sup-ham)AssetManager::appendTimestamp()
not appending timestamp for website root in sub-directory (Isitar)yii\widgets\Menu
(stevekr)Arrayable
or JsonSerializable
in \yii\base\ArrayableTrait::toArray()
and \yii\rest\Serializer::serialize()
(spell6inder)yii\web\AssetManager
$basePath
readable and writeable check has been moved to the checkBasePathPermission()
. This check will run once before publishFile()
and publishDirectory()
(nadar)yii\web\Response::$stream
to a callable (brandonkelly)InvalidConfigException
when failed to instantiate class via DI container in some cases (vjik)maxlength
attribute by default to the input text when it is an active field within a yii\grid\DataColumn
(rad8329)null
value in yii\data\DataFilter
(bizley)yii\data\Pagination::getLinks()
to return links to the first and the last pages regardless of the current page (ptz-nerf, bizley)registerFile
with set argument depends
does not take position
and appendTimestamp
into account (baleeny)\yii\caching\FileCache
files to the same directory when keyPrefix
is set (githubjeka)OUTPUT INSERTED
and computed columns. Add flag to mark computed values in table schema (darkdef)ReflectionParameter::isArray()
method in PHP8 (baletskyi)defaultValues
(wsaid)\yii\base\Model::getErrorSummary()
reverse order (DrDeath72)yii\web\Session
(rhertogh)yii\validators\DateValidator
(bizley)yii\db\Query::create()
wasn't using all info from withQuery()
(maximkou)FileValidator::validateExtension()
(darkdef)yii\base\Model
(Ladone)yii\db\BatchQueryResult
to prevent remote code execution in case application calls unserialize() on user input containing specially crafted string (samdark, russtone)yii\rbac\DbManager::$checkAccessAssignments
is now protected
(alex-code)yii\filters\RateLimiter
to accept a closure function for the $user
property in order to assign values on runtime (nadar)yii\db\Schema::quoteSimpleTableName()
was checking incorrect quote character (M4tho, samdark)findConstraints
to fix MySQL 8 compatibility (darkdef)yii\db\Expression
was not supported as condition in ActiveRecord::findOne()
and ActiveRecord::findAll()
(rhertogh)yii\rbac\DbManager::removeItem()
(samdark)yii\db\Exception
(samdark).phpstorm.meta.php
file for better auto-completion in PhpStorm (vjik)yii\console\ErrorHandler
render chained exceptions in debug mode (mikehaertl)(
in their name (floor12)ArrayHelper::getValue()
did not work with ArrayAccess
objects (mikk150)Table::calculateRowHeight()
(fourhundredfour)HttpBasicAuth
with auth callback now triggers login events same was as other authentication methods (samdark)Table
(cheeseq)EachValidator
with custom validation function (bizley)ANSI_NULL_DFLT_ON
to ON for current DB connection (darkdef)ArrayAccess
via ArrayHelper::getValue()
(samdark)InlineValidator
with anonymous inline function not working well from EachValidator
(trombipeti)OUTPUT INSERTED.*
for SQL Server query: "insert default values"; correct MSSQL unit tests; turn off profiling echo message in migration test (darkdef)prefixTable
(darkdef)[someView]
now (darkdef)Expression
as columnName
should not be quoted in likeCondition
(darkdef)--silent-exit-on-exception
in yii\console\Controller
(egorrishe)Instance::ensure()
to set User::$accessChecker
(lav45)Controller::$request
and $response
(brandonkelly)FileTarget::export
fails (uaoleg)Mutex::isAcquired()
to check if lock is currently acquired (rhertogh)TypeError: pair[1] is undefined
when query param doesn't have =
sign (baso10)EachValidator
crashing with uninitialized typed properties (ricardomm85)DbCache
loop in MySQL QueryBuilder
(alex-code)set_time_limit(0)
(brandonkelly)pageSizeLimit
ignored if set as array with more then 2 elements (tsvetiligo)ActiveRelationTrait
compatibility with PHP 7.4 (Ximich)yii\db\Connection
master and slave failover, no connection attempt was made when all servers are marked as unavailable (cebe)InCondition
and LikeCondition
(alex-code)DynamicModel
, fixed EachValidator
to pass the attribute label to the underlying DynamicModel
(storch)Query::withQuery()
can now be used for CTE (sartor)yii\i18n\Formatter::$currencyDecimalSeparator
to allow setting custom symbols for currency decimal in IntlNumberFormatter
(XPOHOC269)SameSite
cookie pre PHP 7.3 (scottix)joinWith
(germanow)Html
helper checkboxList()
, radioList()
, renderSelectOptions()
, dropDownList()
, listBox()
methods to work properly with traversable selection (samdark)\JsonSerializable
support to ArrayableTrait
(germanow)CREATE INDEX
failure on SQLite when specifying schema (santilin, samdark)activeListInput
options (alex-code)FileTarget
(wapmorgan)yii\web\UploadedFile::saveAs()
failing when error value in $_FILES
entry is a string (haveyaseen)yii\helpers\ArrayHelper::filter
now correctly filters data when passing a filter with more than 2 levels (rhertogh)yii\web\Session::setCookieParamsInternal
checked "samesite" parameter incorrectly (schevgeny)ReplaceArrayValue
config exception message (alex-code)\yii\helpers\BaseInflector::slug()
doesn't work with an empty string as a replacement argument (haruatari)move_uploaded_file()
function instead of copy()
and unlink()
for saving uploaded files in case of POST request (sup-ham)X-Requested-With
in Request::getIsAjax()
(dicrtarasov, samdark)yii\db\Query::queryScalar()
wasn’t reverting the select
, orderBy
, limit
, and offset
params if an exception occurred (brandonkelly)yii\rest\Serializer
to serialize arrays (patacca)Command::getRawSql
having Expression
in params (alex-code)yii\data\ArrayDataProvider
to control the sort flags for sortModels
through yii\data\Sort::sortFlags
property (askobara)Instance::ensure()
to initialize UrlManager::$cache
(rob006)StringValidator::$strict
that can be turned off to allow any scalars (adhayward, samdark)yii\filters\ContentNegotiator
now generates 406 'Not Acceptable' instead of 415 'Unsupported Media Type' on content-type negotiation fail (PowerGamer1)MultipartFormDataParser
(sup-ham)defaultValue
to AR column with CURRENT_TIMESTAMP(x)
as default expression (MySQL >= 5.6.4) (bizley)trustedHosts
set to format ['10.0.0.1' => ['X-Forwarded-For']]
(shushenghong)JSON::encode()
for \DateTimeInterface
under PHP 7.4 (samdark)__toString()
call (rob006)Formatter::formatNumber
method protected (TheCodeholic)data
attribute values in yii\helpers\BaseHtml::renderTagAttributes()
(brandonkelly)ErrorHandler
unregister and register to only change global state when applicable (SamMousa)yii\web\UploadedFile::saveAs()
(sup-ham)aria
attributes to yii\helpers\BaseHtml::renderTagAttributes()
(brandonkelly)m180523_151638_rbac_updates_indexes_without_prefix
(rvkulikov)Query::indexBy
can now include a table alias (brandonkelly)BadRequestHttpException
when request params can’t be bound to int
and float
controller action arguments (brandonkelly)Model::activeAttributes()
to access array offset on value of non-string (samdark)yii\helpers\BaseInflector::slug()
doesn't replace multiple replacement string occurrences to single one (batyrmastyr)Forwarded
header parsing in Request (mikk150, kamarton)Table
widget (alex-code)$schema
in RBAC init file when using MSSQL (PoohOka)__class
(sup-ham, samdark)EmailValidator
with checkDNS=true
throws ErrorException
on bad domains on Alpine (batyrmastyr)AssetBundle
when a disabled bundle with custom init() was still published (onmotion)data
attributes from subkeys rendering in Html::renderTagAttributes()
(brandonkelly)Request::getUserIP()
security fix for the case when Request::$trustedHost
and Request::$ipHeaders
are used (kamarton)yii\i18n\Formatter
including the @calendar
locale param in Yii::t()
calls (brandonkelly)Connection::open()
was not respecting Connection::$enableLogging
(samdark)XMLHttpRequest: Network Error 0x800c0008
) (kamarton)batch()
with indexBy()
with MSSQL (alexkart)yii\db\ExpressionInterface
not supported in yii\db\conditions\SimpleConditionBuilder
(razvanphp)appendTimestamp
support was added to View
methods registerCssFile()
and registerJsFile()
(onmotion)FileValidator
mime-type validation failure because of case sensitivity (kamarton)Response::sendContent()
when set_time_limit()
is disabled (brandonkelly)EVENT_AFTER_REQUEST
when using Pjax (kamarton)XMLHttpRequest: Network Error 0x800c0008
) (kamarton)CHECK
statement goes after COMMENT
in MySQL QueryBuilder::addCommentOnColumn()
(Manu311)$updateColumns
is true
but there are no columns to update in the table (alexkart)Controller::createAction()
(kamarton)IpHelper::inRange()
(kamarton)DbManager::isEmptyUserId()
is now protected (samdark)FileHelper::unlink()
and directory has files it will not delete files in this directory on Windows now (alexkart)SimpleConditionBuilder::build()
when column is not a string (alexkart)batch()
without $db
parameter with MSSQL (alexkart)User::loginRequired
(alex-code)phpTypecast()
for MSSQL (alexkart)Yii
logger instance when setting new logger via configuration (samdark)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-mirghasemi)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)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()`` and
yii\sphinx\ActiveQuery::where()did not allow
yii\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\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\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)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\Formatter
yii\base\Formatter
classyii\validators\DateValidator
to 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 respect
name` 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 function
registerAssetFiles()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 implement
JsonSerializable` interface correctly (cebe)yii\widgets\ActiveField::radio()
and yii\widgets\ActiveField::checkbox()
(jom)https://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->exception
yii\base\ErrorHandler
was split into yii\web\ErrorHandler
and yii\console\ErrorHandler
yii\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 ajaxParam
yii\data\Pagination::pageVar
to pageParam
yii\data\Sort::sortVar
to sortParam
yii\web\Request::csrfVar
to csrfParam
yii\web\Request::methodVar
to methodParam
yii\web\UrlManager::routeVar
to routeParam
yii\web\Session::flashVar
to flashParam
yii\web\User::idVar
to idParam
yii\web\User::authTimeoutVar
to authTimeoutParam
yii\web\User::returnUrlVar
to returnUrlParam
yii\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
Comments