- Bug #1263: Fixed the issue that Gii and Debug modules might be affected by incompatible asset manager configuration (qiangxue)
- Bug #2314: Gii model generator does not generate correct relation type in some special case (qiangxue)
- Bug #2563: Theming is not working if the path map of the theme contains ".." or "." in the paths (qiangxue)
- Bug #2801: Fixed the issue that GridView gets footer content before data cells content (ElisDN)
- Bug #2821: Console help command incorrectly lists non-console controllers as available commands (qiangxue)
- Bug #2853: ActiveRecord did not handle resource-typed columns well (chris68, qiangxue)
- Bug #3042:
yii\widgets\Pjax
should end application right after it finishes responding to a pjax request (qiangxue) - Bug #3066:
yii\db\mssql\Schema::getTableSchema()
should return null when the table does not exist (qiangxue) - Bug #3091: Fixed inconsistent treatment of
Widget::run()
when a widget is used as a container and as a self-contained object (qiangxue) - Bug #3118: Ensure client validation has the same behavior as server side validation for number validator (cebe)
- Bug #3121:
yii\base\Application::bootstrap
may fail to load some components if they are specified as class names (qiangxue) - Bug #3125:
yii\console\controllers\AssetController
now respects data URL resources (klimov-paul) - Bug #3128: Fixed the bug that
defaultRoles
set in RBAC manager was not working as specified (qiangxue) - Bug #3153: Fixed the bug that using "between" operator to build a SQL query will cause a PHP notice (gonimar)
- Bug #3184: Fixed the bug that client validation for string length comparison did not set error message correctly (Sergeygithub)
- Bug #3194: Date formatter works only for timestamps in the year range 1970 to 2038 (kartik-v)
- Bug #3197: Using
ActiveQuery::indexBy()
may cause relational AR queries to generate incorrect relational results (qiangxue) - Bug #3204:
yii\di\Container
did not handle the$config
parameter well in case when it does not have a default value (qiangxue) - Bug #3216: Fixed the bug that
yii.activeForm.destroy()
did not removesubmit
event handlers (qiangxue) - Bug #3233: Ensure consistent behavior in ActiveRecord::afterSave() (cebe, qiangxue)
- Bug #3236: Return value for DateTime->format('U') casted to double to allow correct date formatting (pgaultier)
- Bug #3268: Fixed the bug that the schema name in a table name was not respected by
yii\db\mysql\Schema
(terazoid, qiangxue) - Bug #3311: Fixed the bug that
yii\di\Container::has()
did not return correct value (mgrechanik, qiangxue) - Bug #3327: Fixed "Unable to find debug data" when logging objects with circular references (jarekkozak, samdark)
- Bug #3368: Fix for comparing numeric attributes in JavaScript (technixp)
- Bug #3393: Fix
yii\helpers\FileHelper::copyDirectory()
pattern not working (klimov-paul) - Bug #3431: Allow using extended ErrorHandler class from the app namespace (cebe)
- Bug #3436: Fixed the issue that
ServiceLocator
still returns the old component after callingset()
with a new definition (qiangxue) - Bug #3458: Fixed the bug that the image rendered by
CaptchaAction
was using a wrong content type (MDMunir, qiangxue) - Bug #3473: Allow postgreSQL to specify timestamp precision via abstract types in QueryBuilder (cebe)
- Bug #3478: Fixed yii\console\Controller::select accept empty input as '0' value (lynicidn)
- Bug #3522: Fixed BaseFileHelper::normalizePath to allow a (.) for the current path. (skotos)
- Bug #3548: Fixed the bug that X-Rate-Limit-Remaining header is always zero when using RateLimiter (qiangxue)
- Bug #3559: Use native support for batchInsert in SQLite versions >= 3.7.11 and avoid limitations of the fallback (cebe)
- Bug #3564: Fixed the bug that primary key columns should not take default values from schema (qiangxue)
- Bug #3567: Fixed the bug that smallint was treated as string for PostgreSQL (qiangxue)
- Bug #3568: When the primary query sets
asArray
, it is not respected by thevia
relational query (qiangxue) - Bug #3578: Fixed postgreSQL column type detection, added missing types (MDMunir, cebe)
- Bug #3583: Added typecast to auto value of primary key on insert of sql active record (cebe)
- Bug #3591: Fixed incomplete obsolete filling in i18n
MessageController::saveMessagesToDb()
(advsm) - Bug #3601: Fixed the bug that the refresh URL was not generated correctly by
Captcha
(qiangxue, klevron) - Bug #3638:
yii\filters\HttpCache
does not work as expected when session is started before the filter (qiangxue) - Bug #3681: Fixed problem with AR::findOne() when a default scope joins another table so that PK name becomes ambigous (cebe)
- Bug #3715: Fixed the bug that using a custom pager/sorter with
GridView
may generate two different pagers/sorters if the layout configures two pagers/sorters (qiangxue) - Bug #3716:
DynamicModel::validateData()
does not callvalidate()
if the$rules
parameter is empty (qiangxue) - Bug #3725: Fixed the bug that the filtering condition used in relation definition was ignored when calling
ActiveRecord::unlinkAll()
. (qiangxue, cebe) - Bug #3738: ActiveField custom error selector not functioning (qiangxue)
- Bug #3751: Fixed postgreSQL schema data for enum values, do not add values if there are none (makroxyz)
- Bug #3752:
QueryBuilder::batchInsert()
does not typecast input values (qiangxue) - Bug #3756: Fix number formatting error for
\yii\base\Formatter
by converting strings to float (kartik-v) - Bug #3772: Behaviors adding validation rules do not work as expected (qiangxue)
- Bug #3817:
yii\rbac\PhpManager::getChildren()
returns null instead of expected empty array (qiangxue) - Bug #3843: Fixed Menu bug when using
template
withencodeLabel
=> false (creocoder, umneeq) - Bug #3863: Fixed incorrect js selector for
\yii\widgets\ActiveForm::errorSummaryCssClass
when it contains multiple classes (creocoder, umneeq) - Bug #3893: Headers did not overwrite default setting by webserver (cebe)
- Bug #3909:
Html::to()
should not prefix base URL to URLs that already contain scheme (qiangxue) - Bug #3920: Fixed issue with loading default values of PostgreSQL boolean columns (cebe)
- Bug #3934: yii.handleAction() in yii.js does not correctly detect if a hyperlink contains useful URL or not (joni-jones, qiangxue)
- Bug #3968: Messages logged in shutdown functions are not handled (qiangxue)
- Bug #3989: Fixed yii\log\FileTarget::$rotateByCopy to avoid any rename (cebe)
- Bug #3996: Traversing
Yii::$app->session
may cause a PHP error (qiangxue) - Bug #4020: OCI column detection did not work so gii and other things failed (Sanya1991)
- Bug #4105: Html::dropDownlist options encodeSpaces was not applied to subgroups (MDMunir)
- Bug #4123: Trace level in logger had no effect in Targets, traces where not logged (cebe)
- Bug #4127:
CaptchaValidator
clientside error message wasn't formed properly (samdark) - Bug #4162: Fixed bug where schema name was not used in ’SHOW CREATE TABLE’ query in
yii\db\mysql\Schema
(stevekr) - Bug #4241:
yii\widgets\Pjax
was incorrectly setting container id (mitalcoi) - Bug #4254:
SqlDataProvider
does not work with Oracle and SQL Server (qiangxue, miramir) - Bug #4276: Added check for UPLOAD_ERR_NO_FILE in
yii\web\UploadedFile
and return null if no file was uploaded (OmgDef) - Bug #4342: mssql (dblib) driver does not support getting attributes (tof06)
- Bug #4371: Active form client validation wasn't working in case of two models having same named fields (abrahamy)
- Bug #4409: Upper case letters in subdirectory prefixes of controller IDs were not properly handled (qiangxue)
- Bug #4412: Formatter used SI Prefixes for base 1024, now uses binary prefixes (kmindi)
- Bug #4427: Formatter could do one division too much (kmindi)
- Bug #4453:
yii message/extract
wasn't properly writing to po files in case of multiple categories (samdark) - Bug #4469: Make
Security::compareString()
timing depend only on length of$actual
input and add unit test. (tom--) - Bug #4470: Avoid endless loop when exporting logs with low values of flushInterval and eportInterval (cebe)
- Bug #4497: Fixed StringHelper::byteSubstr() returning empty string on null $length param (mbman)
- Bug #4514: Fixed Request class crashing when empty CSRF token value is sent in cookie (cebe)
- Bug #4519:
yii\base\Model::isAttributeRequired()
should check if thewhen
option of the validator is set (thiagotalma) - Bug #4592: Fixed
yii help
command was listing incorrect action names for methods likeactionSayNO
(samdark) - Bug #4654: Fixed issue with PostgreSQL and inserting boolean values with batch insert (cebe)
- Bug #4672: Fixed issue with PostgreSQL handling of boolean values in queries, dropped support for using boolean value for integer columns (cebe)
- Bug #4727: Fixed wrong Stylus definition in
\yii\web\AssetConverter
(samdark) - Bug #4755:
yii\test\BaseActiveFixture::unload()
does not clean up the internal cached data (qiangxue) - Bug #4813: Fixed MSSQL schema that was getting incorrect info about constraints (samdark, SerjRamone, o-rey)
- Bug #4880: Return value of yii\web\Request::getPrefferedLanguage() was a normalized value instead of a valid language value from the input array (cebe)
- Bug #4905: ActiveForm::$validationDelay doesn't delay after keyrelease when $validateOnType=true (qiangxue)
- Bug #4920:
yii\filters\auth\CompositeAuth
should not trigger error as long as one of the methods succeeds (qiangxue) - Bug #4926: Fixed
yii\console\controllers\MessageController
handles category name containing dot incorrectly (klimov-paul) - Bug #4938: When
yii\db\ActiveQuery
is used to build sub-queries, its WHERE clause is not correctly generated (qiangxue) - Bug #4954: MSSQL column comments are not retrieved correctly (SerjRamone)
- Bug #4970:
joinWith()
called by a relation was ignored byyii\db\ActiveQuery
(stepanselyuk) - Bug #5001:
yii\rest\CreateAction
,yii\rest\UpdateAction
andyii\rest\DeleteAction
should throw 500 error if the model operation returns false without validation errors (qiangxue) - Bug #5039:
UniqueValidator
andExistValidator
did not respect query conditions added by default scope (qiangxue) - Bug #5049:
ActiveForm::validationDelay
should be applied to user types only (qiangxue) - Bug #5055: Fixed
yii\console\controllers\CacheController
does not check if cache component instance of 'yii\caching\Cache' (klimov-paul) - Bug #5126: Fixed text body and charset not being set for multipart mail (nkovacs)
- Bug: Fixed inconsistent return of
\yii\console\Application::runAction()
(samdark) - Bug: URL encoding for the route parameter added to
\yii\web\UrlManager
(klimov-paul) - Bug: Fixed the bug that requesting protected or private action methods would cause 500 error instead of 404 (qiangxue)
- Bug: Fixed Object of class Imagick could not be converted to string in CaptchaAction (eXprojects, cebe)
- Bug: Fixed wrong behavior of
StringHelper::byteSubstr()
in some edge cases (cebe) - Enh #87: Helper
yii\helpers\Security
converted into application component, cryptographic strength improved (klimov-paul) - Enh #422: Added Support for BIT(M) data type default values in Schema (cebe)
- Enh #1160: Added $strict parameter to Inflector::camel2id() to handle consecutive uppercase chars (schmunk)
- Enh #1249: Added support for Active Record relation via array attributes (klimov-paul, cebe)
- Enh #1388: Added mapping from physical types to abstract types for OCI DB driver (qiangxue)
- Enh #1452: Added
Module::getInstance()
to allow accessing the module instance from anywhere within the module (qiangxue) - Enh #2264:
CookieCollection::has()
will return false for expired or removed cookies (qiangxue) - Enh #2315: Any operator now could be used with
yii\db\Query::->where()
operand format (samdark) - Ehn #2380: Added
yii\widgets\ActiveForm::enableClientScript
to support turning on and off client side script generation (qiangxue) - Enh #2435:
yii\db\IntegrityException
is now thrown on database integrity errors instead of generalyii\db\Exception
(samdark) - Enh #2558: Enhanced support for memcached by adding
yii\caching\MemCache::persistentId
andyii\caching\MemCache::options
(qiangxue) - Enh #2837: Error page now shows arguments in stack trace method calls (samdark)
- Enh #2906: Added support for using conditional comments for js and css files registered through asset bundles and Html helper (exromany, qiangxue)
- Enh #2942: Added truncate and truncateWord methods (Alex-Code, samdark)
- Enh #3008: Added
Html::errorSummary()
(qiangxue) - Enh #3088: The debug and gii modules will manage their own URL rules now (hiltonjanfield, qiangxue)
- Enh #3101: Improved handling of log target failures. It will now skip target and log reason instead of going into infinite cycle (samdark)
- Enh #3103: debugger panel is now not displayed when printing a page (githubjeka)
- Enh #3108: Added
yii\debug\Module::enableDebugLogs
to disable logging debug logs by default (qiangxue) - Enh #3132:
yii\rbac\PhpManager
now supports more compact data file format (qiangxue) - Enh #3154: Added validation error display for
GridView
filters (ivan-kolmychek) - Enh #3177:
yii\filters\auth\CompositeAuth
will send out challenges from all auth methods (qiangxue) - Enh #3196: Masked input upgraded to use jquery.inputmask plugin with more features. (kartik-v)
- Enh #3220: Added support for setting transaction isolation levels (cebe)
- Enh #3221: Added events for DB transaction commit/rollback (drcypher, qiangxue)
- Enh #3222: Added
useTablePrefix
option to the model generator for Gii (horizons2) - Enh #3230: Added
yii\filters\AccessControl::user
to support access control with different actors (qiangxue) - Enh #3232: Added
export()
andexportAsString()
methods toyii\helpers\BaseVarDumper
(klimov-paul) - Enh #3240: Added support for assigning an anonymous function to
yii\widgets\ActiveForm::fieldConfig
(qiangxue) - Enh #3244: Allow logging complex data such as arrays and object via the log system (cebe)
- Enh #3252: Added support for case insensitive matching using ILIKE to PostgreSQL QueryBuilder (cebe)
- Enh #3280: Support dynamically attaching anonymous behaviors (qiangxue)
- Enh #3283: Added
$checkAjax
toyii\web\User::loginRequired()
(qiangxue) - Enh #3284: Added support for checking multiple ETags by
yii\filters\HttpCache
(qiangxue) - Enh #3298: Supported configuring
View::theme
using a class name (netyum, qiangxue) - Enh #3328:
BaseMailer
generates better text body from html body (armab) - Enh #3380: Allow
value
indefaultValueValidator
to be a closure (Alex-Code) - Enh #3384: Added callback-style transactions (leandrogehlen, Ragazzo, samdark)
- Enh #3399, #3241: Added support for MS SQL Server older than 2012 (fourteenmeister, samdark)
- Enh #3410: yii.activeForm.js now supports adding/removing fields dynamically (qiangxue)
- Enh #3459: Added logging of errors, which may occur at
yii\caching\FileCache::gc()
(klimov-paul) - Enh #3472: Added configurable option to encode spaces in dropDownLists and listBoxes (kartik-v)
- Enh #3518:
yii\helpers\Html::encode()
now replaces invalid code sequences with "�" (DaSourcerer) - Enh #3520: Added
unlinkAll()
-method to active record to remove all records of a model relation (NmDimas, samdark, cebe) - Enh #3521: Added
yii\filters\HttpCache::sessionCacheLimiter
(qiangxue) - Enh #3542: Removed requirement to specify
extensions
in application config (samdark) - Enh #3562: Adding rotateByCopy to yii\log\FileTarget (pawzar)
- Enh #3574: Add integrity check support for SQLite (zeeke)
- Enh #3581: Added
yii\validators\CompareValidator::type
to support type conversion before comparing values (qiangxue) - Enh #3597: Nested array support for HTML5 custom "data-*" attributes (armab)
- Enh #3607: Added support for limit in migrations actions: history, new, redo (Ragazzo)
- Enh #3631: Added property
currencyCode
toyii\i18n\Formatter
(leandrogehlen) - Enh #3636: Hide menu container tag with empty items in
yii\widgets\Menu
(arturf) - Enh #3643: Improved Mime-Type detection by using the
mime.types
file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder) - Enh #3765: Added
yii\web\User::enableSession
to support authentication without using session (qiangxue) - Enh #3708: Added database replication and automatic read-write splitting support for
yii\db\Connection
(qiangxue) - Enh #3773: Added
FileValidator::mimeTypes
to support validating MIME types of files (Ragazzo) - Enh #3774: Added
FileValidator::checkExtensionByMimeType
to support validating file types against file mime-types (Ragazzo) - Enh #3801: Base migration controller
yii\console\controllers\BaseMigrateController
extracted (klimov-paul) - Enh #3811: Now Gii model generator makes autocomplete for model class field (mitalcoi)
- Enh #3926:
yii\widgets\Breadcrumbs::$links
. Allows individual link to have its owntemplate
(creocoder, umneeq) - Enh #3939:
\yii\Inflector::slug()
improvements (samdark)- Added protected
\yii\Inflector::transliterate()
that could be replaced with custom translit implementation. - Added proper tests for both intl-based slug and PHP fallback.
- Removed character maps for non-latin languages.
- Improved overall slug results.
- Added note about the fact that intl is required for non-latin languages to requirements checker.
- Added protected
- Enh #3957: Added more straightforward configurable properties to
BlameableBehavior
,SluggableBehavior
andTimestampBehavior
(creocoder) - Enh #3992: In mail layouts you can now access the message object via
$message
variable (qiangxue) - Enh #4028: Added ability to
yii\widgets\Menu
to encode each item's label separately (creocoder, umneeq) - Enh #4048: Added
init
event toActiveQuery
classes (qiangxue) - Enh #4072:
\yii\rbac\PhpManager
adjustments (samdark)- Data is now stored in three separate files for items, assignments and rules. File format is simpler.
- Removed
authFile
. AddeditemFile
,assignmentFile
andruleFile
. createdAt
andupdatedAt
are now properly filled with corresponding file modification time.save()
andload()
are now protected instead of public.- Added unit test for saving and loading data.
- Enh #4080: Added proper handling and support of the symlinked directories in
FileHelper
, added $options parameter inFileHelper::removeDirectory()
(resurtm) - Enh #4086: changedAttributes of afterSave Event now contain old values (dizews)
- Enh #4114: Added
Security::generateRandomBytes()
, improved tests (samdark) - Enh #4122:
Html::error()
andHtml::errorSummary()
are now acceptingencode
option. If set to false it prevents encoding of error messages (samdark) - Enh #4131: Security adjustments (tom--)
- Added HKDF to
yii\base\Security
. - Reverted auto fallback to PHP PBKDF2.
- Fixed PBKDF2 key truncation.
- Adjusted API.
- Added HKDF to
- Enh #4209: Added
beforeCopy
,afterCopy
,forceCopy
properties to AssetManager (cebe) - Enh #4225: Added
ActiveForm::validateOnBlur
andActiveField::validateOnBlur
(qiangxue) - Enh #4297: Added check for DOM extension to requirements (samdark)
- Enh #4317: Added
absoluteAuthTimeout
to yii\web\User (ivokund, nkovacs) - Enh #4360: Added client validation support for file validator (Skysplit)
- Enh #4372:
yii\filters\HttpCache
failed to comply to RFC 7232 (DaSourcerer) - Enh #4424: Added
inline
parameter toyii\web\Response::xSendFile()
(klimov-paul) - Enh #4436: Added callback functions to AJAX-based form validation (thiagotalma)
- Enh #4485: Added support for deferred validation in
ActiveForm
(Alex-Code) - Enh #4520: Added sasl support to
yii\caching\MemCache
(xjflyttp) - Enh #4566: Added client validation support for image validator (Skysplit, qiangxue)
- Enh #4581: Added ability to disable url encoding in
UrlRule
(tadaszelvys) - Enh #4602: Added $key param in ActionColumn buttons Closure call (disem)
- Enh #4607: AR model will throw an exception if it does not have a primary key to avoid updating/deleting data massively (qiangxue)
- Enh #4630: Added automatic generating of unique slug value to
yii\behaviors\Sluggable
(klimov-paul) - Enh #4636: Added
yii\web\Response::setDownloadHeaders()
(pawzar) - Enh #4644: Added
yii\db\Schema::createColumnSchema()
to be able to customize column schema used (mcd-php) - Enh #4656: HtmlPurifier helper config can now be a closure to change the purifier config object after it was created (Alex-Code)
- Enh #4062: Added 'caseSensitive' option to
yii\helpers\BaseFileHelper::findFiles()
(klimov-paul) - Enh #4691: Encoding on
ActiveForm
andActiveField
validation errors is now configurable (Alex-Code) - Enh #4740: Added
yii\web\Session::addFlash()
(restyler) - Enh #4897: Added
yii\helpers\FileHelper::mimeMagicFile
(qiangxue) - Enh #5058: Added
$pageSize
parameter toPagination::createUrl()
to allow creating URLs with arbitrary page sizes (cdcchen, qiangxue) - Enh #5089: Added asset debugger panel (arturf, qiangxue)
- Enh #5117: Added
beforeFilter
andafterFilter
JS events toGridView
(kartik-v) - Enh #5124: Added support to prevent duplicated form submission when using
ActiveForm
(qiangxue) - Enh #5131: Added
$autoRenew
parameter toyii\web\User::getIdentity()
(qiangxue) - Enh #5164: Added
Inlfector::$transliterator
that can be used to customize intl transliteration (zinzinday) - Enh: Added support for using sub-queries when building a DB query with
IN
condition (qiangxue) - Enh: Supported adding a new response formatter without the need to reconfigure existing formatters (qiangxue)
- Enh: Added
yii\web\UrlManager::addRules()
to simplify adding new URL rules (qiangxue) - Enh: Added support to insert an event handler at the beginning of class-level event handler queue (qiangxue)
- Enh: Added
yii\console\Controller::EXIT_CODE_NORMAL
andyii\console\Controller::EXIT_CODE_ERROR
constants (samdark) - Enh:
yii\console\MigrateController
now returnsyii\console\Controller::EXIT_CODE_ERROR
in case of failed migration (samdark) - Enh: Added method ErrorHandler::unregister() for unregistering the ErrorHandler (cebe)
- Enh: Added
all
option toMigrateController::actionDown()
action (creocoder, umneeq) - Enh: Added support for array attributes in
exist
validator (creocoder) - Enh: Added support for using path alias with
FileDependency::fileName
(qiangxue) - Enh: Added param
hideOnSinglePage
toyii\widgets\LinkPager
(arturf) - Enh: Added support for array attributes in
in
validator (creocoder) - Enh: Improved
yii\helpers\Inflector::slug
to support more cases for Russian, Hebrew and special characters (samdark) - Enh: ListView now uses the widget ID in the base tag, consistent to gridview (cebe)
- Enh: Added
yii\web\Response::enableCsrfCookie
to support storing CSRF tokens in session (qiangxue) - Chg #2287: Split
yii\db\ColumnSchema::typecast()
into two methodsphpTypecast()
anddbTypecast()
to allow specifying PDO type explicitly (cebe) - Chg #2359: Refactored formatter class. One class with or without intl extension and PHP format pattern as standard (Erik_r, cebe)
yii\base\Formatter
functionality has been merged intoyii\i18n\Formatter
- removed the
yii\base\Formatter
class
- Chg #1551: Refactored DateValidator to support ICU date format and use the format defined in Formatter by default (cebe)
- Chg #2898:
yii\console\controllers\AssetController
is now using hashes instead of timestamps (samdark) - Chg #2913: RBAC
DbManager
is now initialized via migration (samdark) - Chg #2914:
ActiveForm::fieldConfig
will be merged recursively with the$options
parameter inActiveForm::field()
(qiangxue) - Chg #3036: Upgraded Twitter Bootstrap to 3.1.x (qiangxue)
- Chg #3175: InvalidCallException, InvalidParamException, UnknownMethodException are now extended from SPL BadMethodCallException (samdark)
- Chg #3358: Removed automatic CSRF meta tag generation by
View
. AddedHtml::csrfMetaTags()
and its call to main layout files (qiangxue) - Chg #3383: Added
$type
parameter toIdentityInterface::findIdentityByAccessToken()
(qiangxue) - Chg #3511: Dropped
yii.allowAction()
and modifiedyii.confirm()
inyii.js
to support callbacks (tanakahisateru) - Chg #3531: \yii\grid\GridView now allows any character (except ":") in the attribute part of the shorthand syntax for columns (rawtaz)
- Chg #3544: Added
$key
as a parameter to the callable specified viayii\grid\DataColumn::value
(mdmunir) - Chg #3611: Query caching is refactored. (qiangxue)
yii\db\Connection::beginCache()
andendCache()
are removed.- Added
yii\db\Connection::cache()
andnoCache()
. - Added
Command::cache()
andnoCache()
. yii\db\Connection::queryCacheDuration
is now used as a default cache duration parameter.
- Chg #3640: All cookies are now httpOnly by default in order to increase overall security (samdark)
- Chg #3687: Default
sourceLanguage
andlanguage
are nowen-US
in order for i18n formatter to work correctly (samdark) - Chg #3804: Added
fileinfo
PHP extension to the basic requirement of Yii (Ragazzo) - Chg #3866: The
FileValidator::types
property is renamed toFileValidator::extensions
(Ragazzo) - Chg #3897: Raised visibility of
yii\web\View::registerAssetFiles()
to protected (samdark) - Chg #3899: Moved
MailEvent
class toyii\mail
namespace (cebe) - Chg #3910: Removed the
container
option fromHtml::checkbox()
andHtml::radio()
(creocoder) - Chg #3956: Flash messages set via
Yii::$app->session->setFlash()
will be removed only if they are accessed (qiangxue) - Chg #3989: The default value for
yii\log\FileTarget::$rotateByCopy
now defaults to true to work on windows by default (cebe) - Chg #4051: Renamed
yii\caching\GroupDependency
toTagDependency
and added support for associating multiple tags to a single cached data item (qiangxue) - Chg #4071:
mail
component renamed tomailer
,yii\log\EmailTarget::$mail
renamed toyii\log\EmailTarget::$mailer
(samdark) - Chg #4147:
BaseMailer::compose()
will not overwrite themessage
parameter if it is explicitly provided (qiangxue) - Chg #4188: API exceptions are now exposing less data when YII_DEBUG is false (samdark)
- Chg #4201: change default value of
SyslogTarget::facility
fromLOG_SYSLOG
toLOG_USER
(dizews) - Chg #4211: BaseActiveRecord::populateRecord now silently hide selected columns that are not defined in AR instead of failing with an error (miramir)
- Chg #4227:
\yii\widgets\LinkPager::$hideOnSinglePage
is nowtrue
by default (samdark) - Chg #4310: Removed
$data
from signature ofyii\rbac\ManagerInterface
(samdark) - Chg #4318:
yii\helpers\Html::ul()
andol()
will return an empty list tag if an empty item array is given (qiangxue) - Chg #4331:
yii\helpers\Url
now usesUrlManager
to determine base URL when generating URLs (qiangxue) - Chg #4424: Added
inline
andmimeType
options to all file downloading methods provided inyii\web\Response
(qiangxue) - Chg #4454: Improved asset bundle managed and used composer-asset-plugin to manage the dependencies on 3rd-party JS libraries (qiangxue)
- Chg #4501: Renamed the constant
YII_PATH
toYII2_PATH
(qiangxue) - Chg #4586: Signed bigint and unsigned int will be converted into integers when they are loaded from DB by AR (qiangxue)
- Chg #4591:
yii\helpers\Url::to()
will no longer prefix relative URLs with the base URL (qiangxue) - Chg #4595:
yii\widgets\LinkPager
'snextPageLabel
,prevPageLabel
,firstPageLabel
,lastPageLabel
are now takingfalse
instead ofnull
for "no label" (samdark) - Chg #4911: Changed callback signature used in
yii\base\ArrayableTrait::fields()
fromfunction ($field, $model) {
tofunction ($model, $field) {
(samdark) - Chg #4955: Replaced callbacks with events for
ActiveForm
(qiangxue)- Removed
beforeValidate()
,beforeValidateAll()
,afterValidate()
,afterValidateAll()
,ajaxBeforeSend()
andajaxComplete()
fromActiveForm
. - Added
beforeValidate
,afterValidate
,beforeValidateAttribute
,afterValidateAttribute
,beforeSubmit
,ajaxBeforeSend
andajaxComplete
events toyii.activeForm
jQuery plugin.
- Removed
- Chg #5176:
ActiveFixture
will reset table in itsload()
method instead ofunload()
(qiangxue) - Chg: Replaced
clearAll()
andclearAllAssignments()
inyii\rbac\ManagerInterface
withremoveAll()
,removeAllRoles()
,removeAllPermissions()
,removeAllRules()
andremoveAllAssignments()
(qiangxue) - Chg: Added
$user
as the first parameter ofyii\rbac\Rule::execute()
(qiangxue) - Chg:
yii\grid\DataColumn::getDataCellValue()
visibility is nowpublic
to allow accessing the value from a GridView directly (cebe) - Chg:
yii\data\ActiveDataProvider::$query
will not be modified directly with pagination and sorting anymore so it will be reuseable (cebe) - Chg: Removed
yii\rest\ActiveController::$transactional
property and connected functionality (samdark) - Chg: Changed the default value of the
keyPrefix
property of cache components to be null (qiangxue) - Chg: Added
prefix
column toyii\log\DbTarget
to have the same amount of information logged as in files and emails (cebe) - Chg: Use
limit(null)
instead oflimit(-1)
in migration controller to be compatible to more backends (cebe) - Chg:
yii\web\Request::cookieValidationKey
must be explicitly specified for each application that wants to use cookie validation (qiangxue) - Chg: Added
yii\composer\Installer::postCreateProject()
and modified the syntax of calling installer methods in composer.json (qiangxue) - Chg: When an ID is found to be in both
Application::controllerMap
andApplication::modules
, the former will take precedence (qiangxue) - Chg:
yii\helpers\Html::activeCheckbox()
andactiveRadio()
will generate labels by default using the corresponding attribute labels (qiangxue) - New #1280: Gii can now be run from command line (schmunk42, cebe, qiangxue)
- New #3911: Added
yii\behaviors\SluggableBehavior
that fills the specified model attribute with the transliterated and adjusted version to use in URLs (creocoder) - New #4193: Added
yii\filters\Cors
CORS filter to allow Cross Origin Resource Sharing (pgaultier) - New #4945: Added
yii\test\ArrayFixture
(Ragazzo) - New: Added
yii\base\InvalidValueException
(qiangxue) - New: Added
yii\caching\ArrayCache
(cebe)
- Bug #1265: AssetController does not override 'js' and 'css' for compressed bundles (klimov-paul)
- Bug #1326: The
visible
setting forDetailView
doesn't work as expected (qiangxue) - Bug #1412:
FileValidator
andImageValidator
still triggeruploadRequired
error in some case whenskipOnEmpty
is true and no upload is provided (qiangxue) - Bug #1446: Logging while logs are processed causes infinite loop (qiangxue)
- Bug #1497: Localized view files are not correctly returned (mintao)
- Bug #1500: Log messages exported to files are not separated by newlines (omnilight, qiangxue)
- Bug #1504: Debug toolbar isn't loaded successfully in some environments when xdebug is enabled (qiangxue)
- Bug #1509: The SQL for creating Postgres RBAC tables is incorrect (qiangxue)
- Bug #1545: It was not possible to execute db Query twice, params where missing (cebe)
- Bug #1550: fixed the issue that JUI input widgets did not property input IDs.
- Bug #1654: Fixed the issue that a new message source object is generated for every new message being translated (qiangxue)
- Bug #1582: Error messages shown via client-side validation should not be double encoded (qiangxue)
- Bug #1591: StringValidator is accessing undefined property (qiangxue)
- Bug #1597: Added
enableAutoLogin
to basic and advanced application templates so "remember me" now works properly (samdark) - Bug #1631: Charset is now explicitly set to UTF-8 when serving JSON (samdark)
- Bug #1635:
yii\jui\SliderInput
wasn't properly initialized (samdark) - Bug #1659: MSSQL doesn't support limit (Ana1oliy)
- Bug #1686: ActiveForm is creating duplicated messages in error summary (qiangxue)
- Bug #1704: Incorrect regexp is used in
Inflector::camelize()
(qiangxue) - Bug #1710: OpenId auth client does not request required attributes correctly (klimov-paul)
- Bug #1798: Fixed label attributes for array fields (zhuravljov)
- Bug #1800: Better check for
$_SERVER['HTTPS']
inyii\web\Request::getIsSecureConnection()
(ginus, samdark) - Bug #1812: Hide potential warning message due to race condition occurring to
Session::regenerateID()
call (qiangxue) - Bug #1827: Debugger toolbar is loaded twice if an action is calling
run()
to execute another action (qiangxue) - Bug #1868: Added ability to exclude tables from FixtureController apply/clear actions. (Ragazzo)
- Bug #1869: Fixed tables clearing.
TRUNCATE
changed toDELETE
to avoid postgresql tables checks (and truncating all tables) (Ragazzo) - Bug #1870: Validation errors weren't properly translated when using clientside validation (samdark)
- Bug #1930: Fixed domain based URL matching for website root (samdark)
- Bug #1937: Fixed wrong behavior or advanced app's
init --env
when called without parameter actually specified (samdark) - Bug #1959:
Html::activeCheckbox
wasn't respecting custom values for checked/unchecked state (klevron, samdark) - Bug #1965:
Controller::findLayoutFile()
returns incorrect file path when layout name starts with a slash (qiangxue) - Bug #1992: In module scenario that use 'site/captcha' will get wrong refreshUrl (callmez)
- Bug #1993: afterFind event in AR is now called after relations have been populated (cebe, creocoder)
- Bug #1998: Unchecked required checkbox never pass client validation (klevron)
- Bug #2084: AssetController adjusting CSS URLs declared at same line fixed (klimov-paul)
- Bug #2091:
QueryBuilder::buildInCondition()
fails to handle array not starting with index 0 (qiangxue) - Bug #2160: SphinxQL does not support OFFSET (qiangxue, romeo7)
- Bug #2209: When I18N message translation is missing source language is now used for formatting (samdark)
- Bug #2212:
yii\gridview\DataColumn
generates incorrect labels when used with nosql DB and there is no data (qiangxue) - Bug #2298: Fixed the bug that Gii controller generator did not allow digit in the controller ID (qiangxue)
- Bug #2303: Fixed the bug that
yii\base\Theme::pathMap
did not support dynamic update with path aliases (qiangxue) - Bug #2324: Fixed QueryBuilder bug when building a query with "query" option (mintao)
- Bug #2399: Fixed the bug that AssetBundle did not handle relative URLs correctly (qiangxue)
- Bug #2502: Unclear error message when
$_SERVER['DOCUMENT_ROOT']
is empty (samdark) - Bug #2519: MessageSource removed translation messages when event handler was bound to
missingTranslation
-event (cebe) - Bug #2527: Source language for
app
message category was alwaysen
no matter which applicationsourceLanguage
was used (samdark) - Bug #2559: Going back on browser history breaks GridView filtering with
Pjax
(tonydspaniard) - Bug #2571: Fixed the bug that batchInsert will fail for SQLite if the values contain null or boolean false (qiangxue)
- Bug #2607:
yii message
tool wasn't updatingmessage
table (mitalcoi) - Bug #2624: Html::textArea() should respect "name" option. (qiangxue)
- Bug #2653: Fixed the bug that unsetting an unpopulated AR relation would trigger exception (qiangxue)
- Bug #2681: Fixed the bug of php build-in server https://bugs.php.net/bug.php?id=66606 (dizews)
- Bug #2683: Fixed the bug that batchInsert will fail for MySQL if the values contain boolean false (qiangxue)
- Bug #2695: Fixed the issue that
FileValidator::isEmpty()
always returns true for validate multiple files (ZhandosKz) - Bug #2739: Fixed the issue that
CreateAction::run()
was using obsoleteController::createAbsoluteUrl()
method (tonydspaniard) - Bug #2740: Fixed the issue that
CaptchaAction::run()
was using obsoleteController::createUrl()
method (tonydspaniard) - Bug #2760: Fixed GridView
filterUrl
parameters (qiangxue, AlexGx) - Bug #2834: When overriding i18n translation sources from config using
app*
oryii*
defaultapp
andyii
sources were not removed (samdark) - Bug #2848: Individual queries should be enclosed within parenthesis in a UNION query (qiangxue)
- Bug #2862: Using
DbCache
while enabling schema caching may cause infinite loops (qiangxue) - Bug #3052: Fixed the issue that cache dependency data is not reused when
reusable
is set true (qiangxue) - Bug #3443: Fixed
yii\bootstrap\Nav
andyii\bootstrap\Dropdown
were generating wrong ids for submenus (arturf) - Bug #3691: Fixed the issue that
CookieCollection::has
always returns false for cookies from browser (sonicgd) - Bug #4212: MSSQL query builder should not generate the
ORDER BY
clause when it is not needed (qiangxue) - Bug #4232:
TableSchema::sequenceName
for PostgreSQL should remove the enclosing quotes (katzz0, qiangxue) - Bug #4697: MSSQL query builder does not work for newer MSSQL versions when LIMIT is used without ORDER BY (qiangxue)
- Bug: Fixed
Call to a member function registerAssetFiles() on a non-object
in case of wrongsourcePath
for an asset bundle (samdark) - Bug: Fixed incorrect event name for
yii\jui\Spinner
(samdark) - Bug: Json::encode() did not handle objects that implement JsonSerializable interface correctly (cebe)
- Bug: Fixed issue with tabular input on ActiveField::radio() and ActiveField::checkbox() (jom)
- Bug: Fixed the issue that query cache returns the same data for the same SQL but different query methods (qiangxue)
- Bug: Fixed URL parsing so it's now properly giving 404 for URLs like
http://example.com//////site/about
(samdark) - Bug: Fixed
HelpController::getModuleCommands
issue where it attempts to scan a module's controller directory when it doesn't exist (jom) - Bug: Fixed an issue with FileHelper and not accessible directories which resulted in endless loop (cebe)
- Bug: Fixed
$model->load($data)
returnedtrue
if$data
andformName
were empty (samdark) - Bug: Fixed issue with
ActiveRelationTrait
preventingActiveQuery
from clearing events and behaviors on clone (jom) - Bug:
Query::queryScalar
wasn't makingSELECT DISTINCT
queries subqueries (jom) - Bug: Fixed use
$files
instead ofself::$_files[$key]
to allow inheritance (pgaultier) - Enh #46: Added Image extension based on Imagine library (tonydspaniard)
- Enh #364: Improve Inflector::slug with
intl
transliteration. Improved transliteration char map. (tonydspaniard) - Enh #497: Removed
\yii\log\Target::logUser
and added\yii\log\Target::prefix
to support customizing message prefix (qiangxue) - Enh #499: Decoupled
Rule
from RBACItem
(samdark, qiangxue) - Enh #797: Added support for validating multiple columns by
UniqueValidator
andExistValidator
(qiangxue) - Enh #802: Added support for retrieving sub-array element or child object property through
ArrayHelper::getValue()
(qiangxue, cebe) - Enh #938: Added
yii\web\View::renderAjax()
andyii\web\Controller::renderAjax()
(qiangxue) - Enh #1293: Replaced Console::showProgress() with a better approach. See Console::startProgress() for details (cebe)
- Enh #1406: DB Schema support for Oracle Database (p0larbeer, qiangxue)
- Enh #1437: Added ListView::viewParams (qiangxue)
- Enh #1467: Added support for organizing controllers in subdirectories (qiangxue)
- Enh #1469: ActiveRecord::find() now works with default conditions (default scope) applied by createQuery (cebe)
- Enh #1476: Add yii\web\Session::handler property (nineinchnick)
- Enh #1499: Added
ActionColumn::controller
property to support customizing the controller for handling GridView actions (qiangxue) - Enh #1523: Query conditions now allow to use the NOT operator (cebe)
- Enh #1535: Improved
yii\web\User
to start session only when needed. Also prepared it for use without session. (qiangxue) - Enh #1562: Added
yii\bootstrap\Tabs::linkOptions
(kartik-v) - Enh #1572: Added
yii\web\Controller::createAbsoluteUrl()
(samdark) - Enh #1579: throw exception when the given AR relation name does not match in a case sensitive manner (qiangxue)
- Enh #1581: Added
ActiveQuery::joinWith()
andActiveQuery::innerJoinWith()
to support joining with relations (qiangxue) - Enh #1585: added schema parameter to createAbsoluteUrl() to force 'http' or 'https' (cebe)
- Enh #1601: Added support for tagName and encodeLabel parameters in ButtonDropdown (omnilight)
- Enh #1611: Added
BaseActiveRecord::markAttributeDirty()
(qiangxue) - Enh #1633: Advanced application template now works with MongoDB by default (samdark)
- Enh #1634: Use masked CSRF tokens to prevent BREACH exploits (qiangxue)
- Enh #1641: Added
BaseActiveRecord::updateAttributes()
(qiangxue) - Enh #1646: Added postgresql
QueryBuilder::checkIntegrity
andQueryBuilder::resetSequence
(Ragazzo) - Enh #1645: Added
Connection::$pdoClass
property (Ragazzo) - Enh #1645: Added support for nested DB transactions (qiangxue)
- Enh #1681: Added support for automatically adjusting the "for" attribute of label generated by
ActiveField::label()
(qiangxue) - Enh #1706: Added support for registering a single JS/CSS file with dependency (qiangxue)
- Enh #1773: keyPrefix property of Cache is not restricted to alnum characters anymore, however it is still recommended (cebe)
- Enh #1809: Added support for building "EXISTS" and "NOT EXISTS" query conditions (abdrasulov)
- Enh #1839: Added support for getting file extension and basename from uploaded file (anfrantic)
- Enh #1852: ActiveRecord::tableName() now returns table name using DbConnection::tablePrefix (creocoder)
- Enh #1881: Improved
yii\bootstrap\NavBar
withcontainerOptions
,innerContainerOptions
andrenderInnerContainer
(creocoder) - Enh #1894: The path aliases
@webroot
and@web
are now available right after the application is initialized (qiangxue) - Enh #1921: Grid view ActionColumn now allow to name buttons like
{controller/action}
(creocoder) - Enh #1973:
yii message/extract
is now able to generate.po
files (SergeiKutanov, samdark) - Enh #1984: ActionFilter will now mark event as handled when action run is aborted (cebe)
- Enh #2002: Added filterWhere() method to yii\db\Query to allow easy addition of search filter conditions by ignoring empty search fields (samdark, cebe)
- Enh #2003: Added
filter
property toExistValidator
andUniqueValidator
to support adding additional filtering conditions (qiangxue) - Enh #2008:
yii message/extract
is now able to save translation strings to database (kate-kate, samdark) - Enh #2043: Added support for custom request body parsers (danschmidt5189, cebe)
- Enh #2051: Do not save null data into database when using RBAC (qiangxue)
- Enh #2054: Added support for using custom application configuration with the console command runner (qiangxue)
- Enh #2079:
- i18n now falls back to
en
fromen-US
if message translation isn't found (samdark) - View now falls back to
en
fromen-US
if file not found (samdark) - Default
sourceLanguage
andlanguage
are nowen
(samdark)
- i18n now falls back to
- Enh #2101: Gii is now using model labels when generating search (thiagotalma)
- Enh #2102: DetailView now allow use
category.name
as attribute name (creocoder) - Enh #2102: DetailView now allow use custom label in string format like
name:format:label
(creocoder) - Enh #2103: Renamed AccessDeniedHttpException to ForbiddenHttpException, added new commonly used HTTP exception classes (danschmidt5189)
- Enh #2124: Added support for UNION ALL queries (Ivan Pomortsev, iworker)
- Enh #2132: Allow url of CSS and JS files registered in yii\web\View to be url alias (cebe)
- Enh #2144:
Html
helper now supports rendering "data" attributes (qiangxue) - Enh #2156:
yii migrate
now automatically createsmigrations
directory if it does not exist (samdark) - Enh #2211: Added typecast database types into php types (dizews)
- Enh #2240: Improved
yii\web\AssetManager::publish()
,yii\web\AssetManager::getPublishedPath()
andyii\web\AssetManager::getPublishedUrl()
to support aliases (vova07) - Enh #2325: Adding support for the
X-HTTP-Method-Override
header inyii\web\Request::getMethod()
(pawzar) - Enh #2364: Take into account current error reporting level in error handler (gureedo)
- Enh #2387: Added support for fetching data from database in batches (nineinchnick, qiangxue)
- Enh #2392: Added
addCssStyle()
,removeCssStyle()
,cssStyleFromArray()
andcssStyleToArray()
toHtml
(qiangxue, kartik-v, Alex-Code) - Enh #2406: Added support for conditional validation (drenty, cebe, qiangxue)
- Enh #2411: Added Gii extension generator (schmunk42)
- Enh #2415: Added support for inverse relations (qiangxue)
- Enh #2417: Added possibility to set
dataType
for$.ajax
call in yii.activeForm.js (Borales) - Enh #2436: Label of the attribute, which looks like
relatedModel.attribute
, will be received from the related model if it available (djagya) - Enh #2490:
yii\db\Query::count()
and other query scalar methods now properly handle queries with GROUP BY clause (qiangxue) - Enh #2491: Added support for using the same base class name of search model and data model in Gii (qiangxue)
- Enh #2499: Added ability to downgrade migrations by their absolute apply time (resurtm, gorcer)
- Enh #2525: Added support for formatting file sizes with
yii\base\Formatter
(VinceG) - Enh #2526: Allow for null values in batchInsert (skotos)
- Enh #2646: Added support for specifying hostinfo in the pattern of a URL rule (qiangxue)
- Enh #2661: Added boolean column type support for SQLite (qiangxue)
- Enh #2670: Changed
console\Controller::globalOptions()
tooptions($actionID)
to (make it possible to) differentiate options per action (hqx) - Enh #2714: Added support for formatting time intervals relative to the current time with
yii\base\Formatter
(drenty) - Enh #2726: Added
yii\db\ActiveRecord::loadDefaultValues()
that fills default values from DB schema (samdark) - Enh #2729: Added
FilterValidator::skipOnArray
so that filters liketrim
will not fail for array inputs (qiangxue) - Enh #2735: Added support for
DateTimeInterface
inFormatter
(ivokund) - Enh #2756: Added support for injecting custom
isEmpty
check for all validators (qiangxue) - Enh #2775: Added
yii\base\Application::bootstrap
andyii\base\BootstrapInterface
to support running bootstrap classes when starting an application (qiangxue) - Enh #2892: ActiveRecord dirty attributes are now reset after call to
afterSave()
so information about changed attributes is available inafterSave
-event (cebe) - Enh #2910: Added
Application::end()
(qiangxue) - Enh: Added support for using arrays as option values for console commands (qiangxue)
- Enh: Added
favicon.ico
androbots.txt
to default application templates (samdark) - Enh: Added
Widget::autoIdPrefix
to support prefixing automatically generated widget IDs (qiangxue) - Enh: Support for file aliases in console command 'message' (omnilight)
- Enh: Sort and Pagination can now create absolute URLs (cebe)
- Enh: Added support for using array-typed arguments for console commands (qiangxue)
- Enh: Added support for installing packages conforming to PSR-4 standard (qiangxue)
- Enh: Better exception message when class cannot be loaded (samdark)
- Enh:
init
of advanced application now allows to specify answer for overwriting files viainit --overwrite=n
(samdark) - Enh: Added
TableSchema::fullName
property (qiangxue) - Enh: yii\codeception\TestCase now supports loading and using fixtures via Yii fixture framework (qiangxue)
- Enh: Added ability to get incoming headers (dizews)
- Enh: Added
beforeRun()
andafterRun()
toyii\base\Action
(qiangxue) - Enh: Added support for using timeZone with
yii\base\Formatter
(dizews) - Enh: Added
yii\web\View::POS_LOAD
(qiangxue) - Enh: Added
yii\web\Response::clearOutputBuffers()
(qiangxue) - Enh: Improved
QueryBuilder::buildLimit()
to support big numbers (qiangxue) - Enh: Added support for building SQLs with sub-queries (qiangxue)
- Enh: Added
Pagination::getLinks()
(qiangxue) - Enh: Added support for reading page size from query parameters by
Pagination
(qiangxue) - Enh: LinkPager can now register relational link tags in the html header for prev, next, first and last page (cebe)
- Enh: Added
yii\web\UrlRuleInterface
andyii\web\CompositeUrlRule
(qiangxue) - Enh: Added
yii\web\Request::getAuthUser()
andgetAuthPassword()
(qiangxue) - Enh: Added summaryOptions and emptyTextOptions to BaseListView (johonunu)
- Enh: Implemented Oracle column comment reading from another schema (gureedo, samdark)
- Enh: Added support to allow an event handler to be inserted at the beginning of the existing event handler list (qiangxue)
- Enh: Improved action filter and action execution flow by supporting installing action filters at controller, module and application levels (qiangxue)
- Enh: Added
isAssociative()
andisIndexed()
toyii\helpers\ArrayHelper
(qiangxue) - Enh: Added
addSelect
toyii\db\Query
(Alex-Code) - Enh: Added ODBC support in
yii\db\Connection
(nineinchnick, resurtm) - Chg #47: Changed Markdown library to cebe/markdown and adjusted Markdown helper API (cebe)
- Chg #735: Added back
ActiveField::hiddenInput()
(qiangxue) - Chg #1186: Changed
Sort
to use comma to separate multiple sort fields and use negative sign to indicate descending sort (qiangxue) - Chg #1519:
yii\web\User::loginRequired()
now returns theResponse
object instead of exiting the application (qiangxue) - Chg #1564: Removed
yii\web\Session::autoStart
and addedhasSessionId
. Session will be automatically started when accessing session data (qiangxue) - Chg #1586:
QueryBuilder::buildLikeCondition()
will now escape special characters and use percentage characters by default (qiangxue) - Chg #1610:
Html::activeCheckboxList()
andHtml::activeRadioList()
will submit an empty string if no checkbox/radio is selected (qiangxue) - Chg #1643: Added default value for
Captcha::options
(qiangxue) - Chg #1796: Removed
yii\base\Controller::getActionParams()
(samdark) - Chg #1835:
CheckboxColumn
now renders checkboxes whose values are the corresponding data key values (qiangxue) - Chg #1821: Changed default values for yii\db\Connection username and password to null (cebe)
- Chg #1844:
Response::sendFile()
and other file sending methods will not send the response (qiangxue) - Chg #1852: DbConnection::tablePrefix default value now 'tbl_' (creocoder)
- Chg #1958:
beforeSubmit
inyii.activeform
is now executed after validation and before form submission (6pblcb) - Chg #2025: Removed ability to declare scopes in ActiveRecord (samdark)
- Chg #2043:
- Renamed
yii\web\Request::acceptedLanguages
toacceptableLanguages
(qiangxue) - Removed
yii\web\Request::getPost()
,getPut()
,getDelete()
,getPatch()
in favor ofgetBodyParam()
(cebe) - Renamed
yii\web\Request::get()
togetQueryParams()
andgetRestParams()
togetBodyParams()
(cebe) - Added
yii\web\Request::get($name = null, $defaultValue = null)
andyii\web\Request::post($name = null, $defaultValue = null)
(samdark)
- Renamed
- Chg #2059: Implemented git-flavored file excluding/filtering for
FileHelper
(nineinchnick) - Chg #2063: Removed
yii\web\Request::acceptTypes
and renamedyii\web\Request::acceptedContentTypes
toacceptableContentTypes
(qiangxue) - Chg #2103: Renamed AccessDeniedHttpException to ForbiddenHttpException (danschmidt5189)
- Chg #2146: Removed
ActiveRelation
class andActiveRelationInterface
, moved the functionality toActiveQuery
. All relational queries are now directly served byActiveQuery
allowing to use custom scopes in relations and also to declare arbitrary queries as relations. Also removedActiveRecordInterface::createActiveRelation()
(cebe) - Chg #2157: The '*' category pattern will match all categories that do not match any other patterns listed in
I18N::translations
(qiangxue, Ragazzo) - Chg #2161: Added ability to use
return
inWidget::run
(samdark) - Chg #2173: Removed
StringHelper::diff()
, Movedphpspec/php-diff
dependency fromyiisoft/yii2
toyiisoft/yii2-gii
(samdark) - Chg #2175: QueryBuilder will now append UNION statements at the end of the primary SQL (qiangxue)
- Chg #2210: Mysql driver will now treat
tinyint(1)
as integer instead of boolean (qiangxue) - Chg #2248: Renamed
yii\base\Model::DEFAULT_SCENARIO
toyii\base\Model::SCENARIO_DEFAULT
(samdark) - Chg #2281: Renamed
ActiveRecord::create()
topopulateRecord()
and changed signature. This method will not call instantiate() anymore (cebe) - Chg #2405: The CSS class of
MaskedInput
now defaults toform-control
(qiangxue) - Chg #2426: Changed URL creation method signatures to be consistent (samdark)
- Chg #2516: Moved error handling from application to ErrorHandler class and fixed problems with HTTP Exception response code (cebe)
Yii::$app->exception
has now moved toYii::$app->errorHandler->exception
yii\base\ErrorHandler
was split intoyii\web\ErrorHandler
andyii\console\ErrorHandler
- Chg #2544: Changed
DetailView
'sname:format:label
toattribute:format:label
to matchGridView
(samdark) - Chg #2603:
yii\base\ErrorException
now extends\ErrorException
(samdark) - Chg #2629:
Module::controllerPath
is now read only, and all controller classes must be namespaced underModule::controllerNamespace
. (qiangxue) - Chg #2630: API changes for URLs generation (samdark, qiangxue, cebe)
- Added
yii\helpers\Url
. - Removed
yii\helpers\Html::url
, useyii\helpers\Url::to
instead. - Removed
yii\web\Controller::createUrl
andyii\web\Controller::createAbsoluteUrl
, useyii\helpers\Url::toRoute
instead. - Removed
yii\web\Controller::getCanonicalUrl
, useyii\helpers\Url::canonical
instead.
- Added
- Chg #2691: Null parameters will not be included in the generated URLs by
UrlManager
(gonimar, qiangxue) - Chg #2734:
FileCache::keyPrefix
defaults to empty string now (qiangxue) - Chg #2796: Removed
Application::preload
in favor ofApplication::bootstrap
(qiangxue) - Chg #2816: Changed default date and time format of
yii\base\Formatter
toY-m-d
andH:i:s
(qiangxue) - Chg #2911: Removed
tbl_
default for table prefix (samdark) - Chg #2912: Relative view files will be looked for under the directory containing the view currently being rendered (qiangxue)
- Chg #2955: Changed the signature of ActiveQuery constructors and replaced
ActiveRecord::createQuery()
withfind()
to simplify customizing ActiveQuery classes (qiangxue) - Chg #2999: Added
findOne()
andfindAll()
to replace the usage ofActiveRecord::find($condition)
. (samdark, qiangxue) - Chg #4204:
yii\web\Request::getUserIP()
will return null if it cannot detect user IP address (qiangxue) - Chg #4622: Simplified the way of creating a Faker fixture template file (qiangxue)
- Chg: Renamed
yii\jui\Widget::clientEventsMap
toclientEventMap
(qiangxue) - Chg: Renamed
ActiveRecord::getPopulatedRelations()
togetRelatedRecords()
(qiangxue) - Chg: Renamed
attributeName
andclassName
totargetAttribute
andtargetClass
forUniqueValidator
andExistValidator
(qiangxue) - Chg: Added
yii\widgets\InputWidget::options
(qiangxue) - Chg: Changed the signature of
urlCreator
and button creators foryii\gridview\ActionColumn
(qiangxue) - Chg: Updated HTMLPurified dependency to
4.6.*
. - Chg: Changed Yii autoloader to support loading PSR-4 classes only (i.e. PEAR-styled classes not supported anymore) (qiangxue)
- Chg: Changed the directory structure according to PSR-4. You have to update your application
index.php
,index-test.php
andyii
files to point to the new location ofYii.php
(qiangxue, cebe) - Chg: Advanced app template: moved database connection DSN, login and password to
-local
config not to expose it to VCS (samdark) - Chg: Renamed
yii\web\Request::acceptedLanguages
toacceptableLanguages
(qiangxue) - Chg: Removed implementation of
Arrayable
fromyii\Object
(qiangxue) - Chg: The scripts in asset bundles are now registered in
View
at the end ofendBody()
. It was done inendPage()
previously (qiangxue) - Chg: Renamed
csrf-var
tocsrf-param
for CSRF header name (Dilip) - Chg: The directory holding email templates is renamed from
mails
tomail
(qiangxue) - Chg: Renamed properties
fooVar
tofooParam
for various classes (qiangxue)- Renamed
ActiveForm::ajaxVar
toajaxParam
- Renamed
Pagination::pageVar
topageParam
- Renamed
Sort::sortVar
tosortParam
- Renamed
yii\web\Request::csrfVar
tocsrfParam
- Renamed
yii\web\Request::methodVar
tomethodParam
- Renamed
UrlManager::routeVar
torouteParam
- Renamed
yii\web\Session::flashVar
toflashParam
- Renamed
yii\web\User::idVar
toidParam
- Renamed
yii\web\User::authTimeoutVar
toauthTimeoutParam
- Renamed
yii\web\User::returnUrlVar
toreturnUrlParam
- Renamed
- Chg: Added
View::viewFile
and removedViewEvent::viewFile
(qiangxue) - Chg: Changed
Controller::afterAction()
,Module::afterAction()
andActionFilter::afterAction()
to pass$result
by value instead of reference (qiangxue) - Chg:
yii\base\Extension::init()
is renamed tobootstrap()
(qiangxue) - Chg:
getComponent()
andsetComponent()
inApplication
andModule
are renamed toget()
andset()
respectively. (qiangxue) - Chg: The signature of
Yii::createObject()
is changed. Constructor parameters must be passed as the second parameter. (qiangxue) - Chg:
Yii::$objectConfig
is removed. You should useYii::$container->set()
to configure default settings of classes. (qiangxue) - Chg: Removed
yii\grid\Column::getDataCellContent()
and renamedyii\grid\DataColumn::getDataCellContent()
toyii\grid\DataColumn::getDataCellValue()
(cebe) - Chg:
yii\log\Logger
is split intoyii\log\Logger
andyii\log\Dispatcher
. (qiangxue) - Chg: Moved all filter classes to namespace
yii\filters
(qiangxue) - Chg: Re-implemented RBAC by following more closely to the original NIST RBAC model. Dropped
yii\rbac\PhpManager
. (qiangxue) - Chg: Renamed
yii\web\User::checkAccess()
toyii\web\User::can()
(qiangxue) - New #66: Auth client library OpenId, OAuth1, OAuth2 clients (klimov-paul)
- New #303: Added built-in support for REST API (qiangxue)
- New #503: Added
yii\di\Container
andyii\di\ServiceLocator
(qiangxue) - New #706: Added
yii\widgets\Pjax
and enhancedGridView
to work withPjax
to support AJAX-update (qiangxue) - New #1393: Codeception testing framework integration (Ragazzo)
- New #1438: MongoDB integration ActiveRecord and Query (klimov-paul)
- New #1956: Implemented test fixture framework (qiangxue)
- New #2034: Added
ContentNegotiator
to support response format and language negotiation (qiangxue) - New #2149: Added
yii\base\DynamicModel
to support ad-hoc data validation (qiangxue) - New #2360: Added
AttributeBehavior
andBlameableBehavior
, and renamedAutoTimestamp
toTimestampBehavior
(lucianobaraglia, qiangxue) - New #2932: Added
yii\web\ViewAction
that allow you to render views based on GET parameter (samdark) - New #2998: Added
framework\log\SyslogTarget
that is able to write log to syslog (miramir, samdark) - New #3029: Added
yii\bootstrap\ActiveForm
andyii\bootstrap\ActiveField
(mikehaertl) - New #4640: Added
yii\widgets\ActiveForm::beginField()
andendField()
(qiangxue) - New: Yii framework now comes with core messages translated into 26 languages, many thanks to all our translators!
- New: Added
yii\codeception\DbTestCase
(qiangxue) - New: Added
yii\web\GroupUrlRule
(qiangxue) - New: Added
yii\filters\RateLimiter
(qiangxue) - New: Added various authentication methods, including
HttpBasicAuth
,HttpBearerAuth
,QueryParamAuth
, andCompositeAuth
(qiangxue) - New: Added
HtmlResponseFormatter
andJsonResponseFormatter
(qiangxue)
- Initial release.
- Official extensions released in this version:
-
Elasticsearch integration: ActiveRecord and Query
-
Redis integration: ActiveRecord, Cache and Session
-
Sphinx integration: ActiveRecord and Query