diff --git a/.travis.yml b/.travis.yml index f38cf5d04f..069144eab5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,8 +47,13 @@ before_script: script: - vendor/bin/phpunit --verbose --coverage-clover=coverage.clover --exclude-group mssql,oci,wincache,xcache,zenddata - - cd apps/basic/tests && php ../vendor/bin/codecept run - - cd ../../advanced/tests && ../vendor/bin/codecept run + - | + if (php --version | grep -i HipHop > /dev/null); then + echo "skipping application tests on HHVM" + else + cd apps/basic/tests && php ../vendor/bin/codecept run + cd ../../advanced/tests && ../vendor/bin/codecept run + fi after_script: - cd ../../.. diff --git a/build/controllers/ClassmapController.php b/build/controllers/ClassmapController.php index 66bd30d0f3..e88bdb052c 100644 --- a/build/controllers/ClassmapController.php +++ b/build/controllers/ClassmapController.php @@ -23,17 +23,17 @@ class ClassmapController extends Controller /** * Creates a class map for the core Yii classes. - * @param string $root the root path of Yii framework. Defaults to YII_PATH. - * @param string $mapFile the file to contain the class map. Defaults to YII_PATH . '/classes.php'. + * @param string $root the root path of Yii framework. Defaults to YII2_PATH. + * @param string $mapFile the file to contain the class map. Defaults to YII2_PATH . '/classes.php'. */ public function actionCreate($root = null, $mapFile = null) { if ($root === null) { - $root = YII_PATH; + $root = YII2_PATH; } $root = FileHelper::normalizePath($root); if ($mapFile === null) { - $mapFile = YII_PATH . '/classes.php'; + $mapFile = YII2_PATH . '/classes.php'; } $options = [ 'filter' => function ($path) { @@ -60,7 +60,7 @@ class ClassmapController extends Controller throw new Exception("Something wrong: $file\n"); } $path = str_replace('\\', '/', substr($file, strlen($root))); - $map[$path] = " 'yii" . substr(str_replace('/', '\\', $path), 0, -4) . "' => YII_PATH . '$path',"; + $map[$path] = " 'yii" . substr(str_replace('/', '\\', $path), 0, -4) . "' => YII2_PATH . '$path',"; } ksort($map); $map = implode("\n", $map); diff --git a/build/controllers/PhpDocController.php b/build/controllers/PhpDocController.php index 7417e08b48..f085c51a71 100644 --- a/build/controllers/PhpDocController.php +++ b/build/controllers/PhpDocController.php @@ -37,7 +37,7 @@ class PhpDocController extends Controller * * See https://github.com/yiisoft/yii2/wiki/Core-framework-code-style#documentation for details. * - * @param string $root the directory to parse files from. Defaults to YII_PATH. + * @param string $root the directory to parse files from. Defaults to YII2_PATH. */ public function actionProperty($root = null) { @@ -68,7 +68,7 @@ class PhpDocController extends Controller /** * Fix some issues with PHPdoc in files * - * @param string $root the directory to parse files from. Defaults to YII_PATH. + * @param string $root the directory to parse files from. Defaults to YII2_PATH. */ public function actionFix($root = null) { @@ -112,7 +112,7 @@ class PhpDocController extends Controller { $except = []; if ($root === null) { - $root = dirname(YII_PATH); + $root = dirname(YII2_PATH); $extensionPath = "$root/extensions"; foreach (scandir($extensionPath) as $extension) { if (ctype_alpha($extension) && is_dir($extensionPath . '/' . $extension)) { diff --git a/build/controllers/ReleaseController.php b/build/controllers/ReleaseController.php index f6dcacf380..ffe19ecc42 100644 --- a/build/controllers/ReleaseController.php +++ b/build/controllers/ReleaseController.php @@ -79,7 +79,7 @@ class ReleaseController extends Controller protected function getChangelogs() { - return array_merge([YII_PATH . '/CHANGELOG.md'], glob(dirname(YII_PATH) . '/extensions/*/CHANGELOG.md')); + return array_merge([YII2_PATH . '/CHANGELOG.md'], glob(dirname(YII2_PATH) . '/extensions/*/CHANGELOG.md')); } protected function composerSetStability($version) @@ -99,9 +99,9 @@ class ReleaseController extends Controller '/"minimum-stability": "(.+?)",/', '"minimum-stability": "' . $stability . '",', [ - dirname(YII_PATH) . '/apps/advanced/composer.json', - dirname(YII_PATH) . '/apps/basic/composer.json', - dirname(YII_PATH) . '/apps/benchmark/composer.json', + dirname(YII2_PATH) . '/apps/advanced/composer.json', + dirname(YII2_PATH) . '/apps/basic/composer.json', + dirname(YII2_PATH) . '/apps/benchmark/composer.json', ] ); } @@ -111,7 +111,7 @@ class ReleaseController extends Controller $this->sed( '/function getVersion\(\)\n \{\n return \'(.+?)\';/', "function getVersion()\n {\n return '$version';", - YII_PATH . '/BaseYii.php'); + YII2_PATH . '/BaseYii.php'); } protected function sed($pattern, $replace, $files) diff --git a/docs/guide/start-installation.md b/docs/guide/start-installation.md index 8c0d8fbd30..ef6c591616 100644 --- a/docs/guide/start-installation.md +++ b/docs/guide/start-installation.md @@ -103,7 +103,9 @@ Configuring Web Servers The application installed according to the above instructions should work out of box with either an [Apache HTTP server](http://httpd.apache.org/) or an [Nginx HTTP server](http://nginx.org/), on - Windows, Mac OS X, or Linux. +Windows, Mac OS X, or Linux running PHP 5.4 or higher. Yii 2.0 is also compatible the facebooks +[HHVM](http://hhvm.com/) however there are some edge cases where HHVM behaves different than native +PHP so you have to take some extra care when using HHVM. On a production server, you may want to configure your Web server so that the application can be accessed via the URL `http://www.example.com/index.php` instead of `http://www.example.com/basic/web/index.php`. Such configuration diff --git a/extensions/apidoc/models/BaseDoc.php b/extensions/apidoc/models/BaseDoc.php index bff39e5566..ab80f15237 100644 --- a/extensions/apidoc/models/BaseDoc.php +++ b/extensions/apidoc/models/BaseDoc.php @@ -121,7 +121,7 @@ class BaseDoc extends Object // // public function getSourceCode() // { -// $lines = file(YII_PATH . $this->sourcePath); +// $lines = file(YII2_PATH . $this->sourcePath); // return implode("", array_slice($lines, $this->startLine - 1, $this->endLine - $this->startLine + 1)); // } diff --git a/framework/BaseYii.php b/framework/BaseYii.php index 5fd861adf2..867d4a5b4e 100644 --- a/framework/BaseYii.php +++ b/framework/BaseYii.php @@ -20,7 +20,7 @@ defined('YII_BEGIN_TIME') or define('YII_BEGIN_TIME', microtime(true)); /** * This constant defines the framework installation directory. */ -defined('YII_PATH') or define('YII_PATH', __DIR__); +defined('YII2_PATH') or define('YII2_PATH', __DIR__); /** * This constant defines whether the application should be in debug mode or not. Defaults to false. */ diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index c76de4fc61..3066cb6e7e 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -180,6 +180,7 @@ Yii Framework 2 Change Log - 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 #4691: Encoding on `ActiveForm` and `ActiveField` validation errors is now configurable (Alex-Code) @@ -228,6 +229,7 @@ Yii Framework 2 Change Log - Chg #4310: Removed `$data` from signature of `yii\rbac\ManagerInterface` (samdark) - Chg #4318: `yii\helpers\Html::ul()` and `ol()` will return an empty list tag if an empty item array is given (qiangxue) - Chg #4331: `yii\helpers\Url` now uses `UrlManager` to determine base URL when generating URLs (qiangxue) +- Chg #4501: Renamed the constant `YII_PATH` to `YII2_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`'s `nextPageLabel`, `prevPageLabel`, `firstPageLabel`, `lastPageLabel` are now taking `false` instead of `null` for "no label" (samdark) diff --git a/framework/UPGRADE.md b/framework/UPGRADE.md index 08e94c724c..db166f2bd7 100644 --- a/framework/UPGRADE.md +++ b/framework/UPGRADE.md @@ -78,6 +78,8 @@ Upgrade from Yii 2.0 Beta `new \yii\caching\TagDependency(['tags' => 'TagName'])`, where `TagName` is similar to the group name that you previously used. +* If you are using the constant `YII_PATH` in your code, you should rename it to `YII2_PATH` now. + * You must explicitly configure `yii\web\Request::cookieValidationKey` with a secret key. Previously this is done automatically. To do so, modify your application configuration like the following: diff --git a/framework/bower.json b/framework/bower.json new file mode 100644 index 0000000000..05f9753612 --- /dev/null +++ b/framework/bower.json @@ -0,0 +1,34 @@ +{ + "name": "yii2", + "version": "2.0.0", + "homepage": "http://www.yiiframework.com/", + "authors": [ + "Qiang Xue ", + "Alexander Makarov ", + "Carsten Brandt ", + "Paul Klimov " + ], + "description": "Yii PHP Framework Version 2", + "keywords": [ + "yii2", + "framework" + ], + "license": "BSD-3-Clause", + "main": [ + "assets/yii.js", + "assets/yii.validation.js", + "assets/yii.activeForm.js", + "assets/yii.captcha.js", + "assets/yii.gridView.js" + ], + "ignore": [ + "**/.*", + "**/*", + "!assets/", + "!LICENSE.md" + ], + "dependencies": { + "jquery.inputmask": ">=3.0.0", + "punycode": ">=1.3.0" + } +} diff --git a/framework/classes.php b/framework/classes.php index cb7631e463..214231adfa 100644 --- a/framework/classes.php +++ b/framework/classes.php @@ -11,308 +11,308 @@ */ return [ - 'yii\base\Action' => YII_PATH . '/base/Action.php', - 'yii\base\ActionEvent' => YII_PATH . '/base/ActionEvent.php', - 'yii\base\ActionFilter' => YII_PATH . '/base/ActionFilter.php', - 'yii\base\Application' => YII_PATH . '/base/Application.php', - 'yii\base\ArrayAccessTrait' => YII_PATH . '/base/ArrayAccessTrait.php', - 'yii\base\Arrayable' => YII_PATH . '/base/Arrayable.php', - 'yii\base\ArrayableTrait' => YII_PATH . '/base/ArrayableTrait.php', - 'yii\base\Behavior' => YII_PATH . '/base/Behavior.php', - 'yii\base\BootstrapInterface' => YII_PATH . '/base/BootstrapInterface.php', - 'yii\base\Component' => YII_PATH . '/base/Component.php', - 'yii\base\Controller' => YII_PATH . '/base/Controller.php', - 'yii\base\DynamicModel' => YII_PATH . '/base/DynamicModel.php', - 'yii\base\ErrorException' => YII_PATH . '/base/ErrorException.php', - 'yii\base\ErrorHandler' => YII_PATH . '/base/ErrorHandler.php', - 'yii\base\Event' => YII_PATH . '/base/Event.php', - 'yii\base\Exception' => YII_PATH . '/base/Exception.php', - 'yii\base\ExitException' => YII_PATH . '/base/ExitException.php', - 'yii\base\Formatter' => YII_PATH . '/base/Formatter.php', - 'yii\base\InlineAction' => YII_PATH . '/base/InlineAction.php', - 'yii\base\InvalidCallException' => YII_PATH . '/base/InvalidCallException.php', - 'yii\base\InvalidConfigException' => YII_PATH . '/base/InvalidConfigException.php', - 'yii\base\InvalidParamException' => YII_PATH . '/base/InvalidParamException.php', - 'yii\base\InvalidRouteException' => YII_PATH . '/base/InvalidRouteException.php', - 'yii\base\Model' => YII_PATH . '/base/Model.php', - 'yii\base\ModelEvent' => YII_PATH . '/base/ModelEvent.php', - 'yii\base\Module' => YII_PATH . '/base/Module.php', - 'yii\base\NotSupportedException' => YII_PATH . '/base/NotSupportedException.php', - 'yii\base\Object' => YII_PATH . '/base/Object.php', - 'yii\base\Request' => YII_PATH . '/base/Request.php', - 'yii\base\Response' => YII_PATH . '/base/Response.php', - 'yii\base\Security' => YII_PATH . '/base/Security.php', - 'yii\base\Theme' => YII_PATH . '/base/Theme.php', - 'yii\base\UnknownClassException' => YII_PATH . '/base/UnknownClassException.php', - 'yii\base\UnknownMethodException' => YII_PATH . '/base/UnknownMethodException.php', - 'yii\base\UnknownPropertyException' => YII_PATH . '/base/UnknownPropertyException.php', - 'yii\base\UserException' => YII_PATH . '/base/UserException.php', - 'yii\base\View' => YII_PATH . '/base/View.php', - 'yii\base\ViewContextInterface' => YII_PATH . '/base/ViewContextInterface.php', - 'yii\base\ViewEvent' => YII_PATH . '/base/ViewEvent.php', - 'yii\base\ViewRenderer' => YII_PATH . '/base/ViewRenderer.php', - 'yii\base\Widget' => YII_PATH . '/base/Widget.php', - 'yii\behaviors\AttributeBehavior' => YII_PATH . '/behaviors/AttributeBehavior.php', - 'yii\behaviors\BlameableBehavior' => YII_PATH . '/behaviors/BlameableBehavior.php', - 'yii\behaviors\SluggableBehavior' => YII_PATH . '/behaviors/SluggableBehavior.php', - 'yii\behaviors\TimestampBehavior' => YII_PATH . '/behaviors/TimestampBehavior.php', - 'yii\caching\ApcCache' => YII_PATH . '/caching/ApcCache.php', - 'yii\caching\Cache' => YII_PATH . '/caching/Cache.php', - 'yii\caching\ChainedDependency' => YII_PATH . '/caching/ChainedDependency.php', - 'yii\caching\DbCache' => YII_PATH . '/caching/DbCache.php', - 'yii\caching\DbDependency' => YII_PATH . '/caching/DbDependency.php', - 'yii\caching\Dependency' => YII_PATH . '/caching/Dependency.php', - 'yii\caching\DummyCache' => YII_PATH . '/caching/DummyCache.php', - 'yii\caching\ExpressionDependency' => YII_PATH . '/caching/ExpressionDependency.php', - 'yii\caching\FileCache' => YII_PATH . '/caching/FileCache.php', - 'yii\caching\FileDependency' => YII_PATH . '/caching/FileDependency.php', - 'yii\caching\MemCache' => YII_PATH . '/caching/MemCache.php', - 'yii\caching\MemCacheServer' => YII_PATH . '/caching/MemCacheServer.php', - 'yii\caching\TagDependency' => YII_PATH . '/caching/TagDependency.php', - 'yii\caching\WinCache' => YII_PATH . '/caching/WinCache.php', - 'yii\caching\XCache' => YII_PATH . '/caching/XCache.php', - 'yii\caching\ZendDataCache' => YII_PATH . '/caching/ZendDataCache.php', - 'yii\captcha\Captcha' => YII_PATH . '/captcha/Captcha.php', - 'yii\captcha\CaptchaAction' => YII_PATH . '/captcha/CaptchaAction.php', - 'yii\captcha\CaptchaAsset' => YII_PATH . '/captcha/CaptchaAsset.php', - 'yii\captcha\CaptchaValidator' => YII_PATH . '/captcha/CaptchaValidator.php', - 'yii\data\ActiveDataProvider' => YII_PATH . '/data/ActiveDataProvider.php', - 'yii\data\ArrayDataProvider' => YII_PATH . '/data/ArrayDataProvider.php', - 'yii\data\BaseDataProvider' => YII_PATH . '/data/BaseDataProvider.php', - 'yii\data\DataProviderInterface' => YII_PATH . '/data/DataProviderInterface.php', - 'yii\data\Pagination' => YII_PATH . '/data/Pagination.php', - 'yii\data\Sort' => YII_PATH . '/data/Sort.php', - 'yii\data\SqlDataProvider' => YII_PATH . '/data/SqlDataProvider.php', - 'yii\db\ActiveQuery' => YII_PATH . '/db/ActiveQuery.php', - 'yii\db\ActiveQueryInterface' => YII_PATH . '/db/ActiveQueryInterface.php', - 'yii\db\ActiveQueryTrait' => YII_PATH . '/db/ActiveQueryTrait.php', - 'yii\db\ActiveRecord' => YII_PATH . '/db/ActiveRecord.php', - 'yii\db\ActiveRecordInterface' => YII_PATH . '/db/ActiveRecordInterface.php', - 'yii\db\ActiveRelationTrait' => YII_PATH . '/db/ActiveRelationTrait.php', - 'yii\db\AfterSaveEvent' => YII_PATH . '/db/AfterSaveEvent.php', - 'yii\db\BaseActiveRecord' => YII_PATH . '/db/BaseActiveRecord.php', - 'yii\db\BatchQueryResult' => YII_PATH . '/db/BatchQueryResult.php', - 'yii\db\ColumnSchema' => YII_PATH . '/db/ColumnSchema.php', - 'yii\db\Command' => YII_PATH . '/db/Command.php', - 'yii\db\Connection' => YII_PATH . '/db/Connection.php', - 'yii\db\DataReader' => YII_PATH . '/db/DataReader.php', - 'yii\db\Exception' => YII_PATH . '/db/Exception.php', - 'yii\db\Expression' => YII_PATH . '/db/Expression.php', - 'yii\db\IntegrityException' => YII_PATH . '/db/IntegrityException.php', - 'yii\db\Migration' => YII_PATH . '/db/Migration.php', - 'yii\db\MigrationInterface' => YII_PATH . '/db/MigrationInterface.php', - 'yii\db\Query' => YII_PATH . '/db/Query.php', - 'yii\db\QueryBuilder' => YII_PATH . '/db/QueryBuilder.php', - 'yii\db\QueryInterface' => YII_PATH . '/db/QueryInterface.php', - 'yii\db\QueryTrait' => YII_PATH . '/db/QueryTrait.php', - 'yii\db\Schema' => YII_PATH . '/db/Schema.php', - 'yii\db\StaleObjectException' => YII_PATH . '/db/StaleObjectException.php', - 'yii\db\TableSchema' => YII_PATH . '/db/TableSchema.php', - 'yii\db\Transaction' => YII_PATH . '/db/Transaction.php', - 'yii\db\cubrid\QueryBuilder' => YII_PATH . '/db/cubrid/QueryBuilder.php', - 'yii\db\cubrid\Schema' => YII_PATH . '/db/cubrid/Schema.php', - 'yii\db\mssql\PDO' => YII_PATH . '/db/mssql/PDO.php', - 'yii\db\mssql\QueryBuilder' => YII_PATH . '/db/mssql/QueryBuilder.php', - 'yii\db\mssql\Schema' => YII_PATH . '/db/mssql/Schema.php', - 'yii\db\mssql\SqlsrvPDO' => YII_PATH . '/db/mssql/SqlsrvPDO.php', - 'yii\db\mssql\TableSchema' => YII_PATH . '/db/mssql/TableSchema.php', - 'yii\db\mysql\QueryBuilder' => YII_PATH . '/db/mysql/QueryBuilder.php', - 'yii\db\mysql\Schema' => YII_PATH . '/db/mysql/Schema.php', - 'yii\db\oci\QueryBuilder' => YII_PATH . '/db/oci/QueryBuilder.php', - 'yii\db\oci\Schema' => YII_PATH . '/db/oci/Schema.php', - 'yii\db\pgsql\QueryBuilder' => YII_PATH . '/db/pgsql/QueryBuilder.php', - 'yii\db\pgsql\Schema' => YII_PATH . '/db/pgsql/Schema.php', - 'yii\db\sqlite\QueryBuilder' => YII_PATH . '/db/sqlite/QueryBuilder.php', - 'yii\db\sqlite\Schema' => YII_PATH . '/db/sqlite/Schema.php', - 'yii\di\Container' => YII_PATH . '/di/Container.php', - 'yii\di\Instance' => YII_PATH . '/di/Instance.php', - 'yii\di\ServiceLocator' => YII_PATH . '/di/ServiceLocator.php', - 'yii\filters\AccessControl' => YII_PATH . '/filters/AccessControl.php', - 'yii\filters\AccessRule' => YII_PATH . '/filters/AccessRule.php', - 'yii\filters\ContentNegotiator' => YII_PATH . '/filters/ContentNegotiator.php', - 'yii\filters\Cors' => YII_PATH . '/filters/Cors.php', - 'yii\filters\HttpCache' => YII_PATH . '/filters/HttpCache.php', - 'yii\filters\PageCache' => YII_PATH . '/filters/PageCache.php', - 'yii\filters\RateLimitInterface' => YII_PATH . '/filters/RateLimitInterface.php', - 'yii\filters\RateLimiter' => YII_PATH . '/filters/RateLimiter.php', - 'yii\filters\VerbFilter' => YII_PATH . '/filters/VerbFilter.php', - 'yii\filters\auth\AuthInterface' => YII_PATH . '/filters/auth/AuthInterface.php', - 'yii\filters\auth\AuthMethod' => YII_PATH . '/filters/auth/AuthMethod.php', - 'yii\filters\auth\CompositeAuth' => YII_PATH . '/filters/auth/CompositeAuth.php', - 'yii\filters\auth\HttpBasicAuth' => YII_PATH . '/filters/auth/HttpBasicAuth.php', - 'yii\filters\auth\HttpBearerAuth' => YII_PATH . '/filters/auth/HttpBearerAuth.php', - 'yii\filters\auth\QueryParamAuth' => YII_PATH . '/filters/auth/QueryParamAuth.php', - 'yii\grid\ActionColumn' => YII_PATH . '/grid/ActionColumn.php', - 'yii\grid\CheckboxColumn' => YII_PATH . '/grid/CheckboxColumn.php', - 'yii\grid\Column' => YII_PATH . '/grid/Column.php', - 'yii\grid\DataColumn' => YII_PATH . '/grid/DataColumn.php', - 'yii\grid\GridView' => YII_PATH . '/grid/GridView.php', - 'yii\grid\GridViewAsset' => YII_PATH . '/grid/GridViewAsset.php', - 'yii\grid\SerialColumn' => YII_PATH . '/grid/SerialColumn.php', - 'yii\helpers\ArrayHelper' => YII_PATH . '/helpers/ArrayHelper.php', - 'yii\helpers\BaseArrayHelper' => YII_PATH . '/helpers/BaseArrayHelper.php', - 'yii\helpers\BaseConsole' => YII_PATH . '/helpers/BaseConsole.php', - 'yii\helpers\BaseFileHelper' => YII_PATH . '/helpers/BaseFileHelper.php', - 'yii\helpers\BaseHtml' => YII_PATH . '/helpers/BaseHtml.php', - 'yii\helpers\BaseHtmlPurifier' => YII_PATH . '/helpers/BaseHtmlPurifier.php', - 'yii\helpers\BaseInflector' => YII_PATH . '/helpers/BaseInflector.php', - 'yii\helpers\BaseJson' => YII_PATH . '/helpers/BaseJson.php', - 'yii\helpers\BaseMarkdown' => YII_PATH . '/helpers/BaseMarkdown.php', - 'yii\helpers\BaseStringHelper' => YII_PATH . '/helpers/BaseStringHelper.php', - 'yii\helpers\BaseUrl' => YII_PATH . '/helpers/BaseUrl.php', - 'yii\helpers\BaseVarDumper' => YII_PATH . '/helpers/BaseVarDumper.php', - 'yii\helpers\Console' => YII_PATH . '/helpers/Console.php', - 'yii\helpers\FileHelper' => YII_PATH . '/helpers/FileHelper.php', - 'yii\helpers\Html' => YII_PATH . '/helpers/Html.php', - 'yii\helpers\HtmlPurifier' => YII_PATH . '/helpers/HtmlPurifier.php', - 'yii\helpers\Inflector' => YII_PATH . '/helpers/Inflector.php', - 'yii\helpers\Json' => YII_PATH . '/helpers/Json.php', - 'yii\helpers\Markdown' => YII_PATH . '/helpers/Markdown.php', - 'yii\helpers\StringHelper' => YII_PATH . '/helpers/StringHelper.php', - 'yii\helpers\Url' => YII_PATH . '/helpers/Url.php', - 'yii\helpers\VarDumper' => YII_PATH . '/helpers/VarDumper.php', - 'yii\i18n\DbMessageSource' => YII_PATH . '/i18n/DbMessageSource.php', - 'yii\i18n\Formatter' => YII_PATH . '/i18n/Formatter.php', - 'yii\i18n\GettextFile' => YII_PATH . '/i18n/GettextFile.php', - 'yii\i18n\GettextMessageSource' => YII_PATH . '/i18n/GettextMessageSource.php', - 'yii\i18n\GettextMoFile' => YII_PATH . '/i18n/GettextMoFile.php', - 'yii\i18n\GettextPoFile' => YII_PATH . '/i18n/GettextPoFile.php', - 'yii\i18n\I18N' => YII_PATH . '/i18n/I18N.php', - 'yii\i18n\MessageFormatter' => YII_PATH . '/i18n/MessageFormatter.php', - 'yii\i18n\MessageSource' => YII_PATH . '/i18n/MessageSource.php', - 'yii\i18n\MissingTranslationEvent' => YII_PATH . '/i18n/MissingTranslationEvent.php', - 'yii\i18n\PhpMessageSource' => YII_PATH . '/i18n/PhpMessageSource.php', - 'yii\log\DbTarget' => YII_PATH . '/log/DbTarget.php', - 'yii\log\Dispatcher' => YII_PATH . '/log/Dispatcher.php', - 'yii\log\EmailTarget' => YII_PATH . '/log/EmailTarget.php', - 'yii\log\FileTarget' => YII_PATH . '/log/FileTarget.php', - 'yii\log\Logger' => YII_PATH . '/log/Logger.php', - 'yii\log\SyslogTarget' => YII_PATH . '/log/SyslogTarget.php', - 'yii\log\Target' => YII_PATH . '/log/Target.php', - 'yii\mail\BaseMailer' => YII_PATH . '/mail/BaseMailer.php', - 'yii\mail\BaseMessage' => YII_PATH . '/mail/BaseMessage.php', - 'yii\mail\MailEvent' => YII_PATH . '/mail/MailEvent.php', - 'yii\mail\MailerInterface' => YII_PATH . '/mail/MailerInterface.php', - 'yii\mail\MessageInterface' => YII_PATH . '/mail/MessageInterface.php', - 'yii\mutex\DbMutex' => YII_PATH . '/mutex/DbMutex.php', - 'yii\mutex\FileMutex' => YII_PATH . '/mutex/FileMutex.php', - 'yii\mutex\Mutex' => YII_PATH . '/mutex/Mutex.php', - 'yii\mutex\MysqlMutex' => YII_PATH . '/mutex/MysqlMutex.php', - 'yii\rbac\Assignment' => YII_PATH . '/rbac/Assignment.php', - 'yii\rbac\BaseManager' => YII_PATH . '/rbac/BaseManager.php', - 'yii\rbac\DbManager' => YII_PATH . '/rbac/DbManager.php', - 'yii\rbac\Item' => YII_PATH . '/rbac/Item.php', - 'yii\rbac\ManagerInterface' => YII_PATH . '/rbac/ManagerInterface.php', - 'yii\rbac\Permission' => YII_PATH . '/rbac/Permission.php', - 'yii\rbac\PhpManager' => YII_PATH . '/rbac/PhpManager.php', - 'yii\rbac\Role' => YII_PATH . '/rbac/Role.php', - 'yii\rbac\Rule' => YII_PATH . '/rbac/Rule.php', - 'yii\requirements\YiiRequirementChecker' => YII_PATH . '/requirements/YiiRequirementChecker.php', - 'yii\rest\Action' => YII_PATH . '/rest/Action.php', - 'yii\rest\ActiveController' => YII_PATH . '/rest/ActiveController.php', - 'yii\rest\Controller' => YII_PATH . '/rest/Controller.php', - 'yii\rest\CreateAction' => YII_PATH . '/rest/CreateAction.php', - 'yii\rest\DeleteAction' => YII_PATH . '/rest/DeleteAction.php', - 'yii\rest\IndexAction' => YII_PATH . '/rest/IndexAction.php', - 'yii\rest\OptionsAction' => YII_PATH . '/rest/OptionsAction.php', - 'yii\rest\Serializer' => YII_PATH . '/rest/Serializer.php', - 'yii\rest\UpdateAction' => YII_PATH . '/rest/UpdateAction.php', - 'yii\rest\UrlRule' => YII_PATH . '/rest/UrlRule.php', - 'yii\rest\ViewAction' => YII_PATH . '/rest/ViewAction.php', - 'yii\test\ActiveFixture' => YII_PATH . '/test/ActiveFixture.php', - 'yii\test\BaseActiveFixture' => YII_PATH . '/test/BaseActiveFixture.php', - 'yii\test\DbFixture' => YII_PATH . '/test/DbFixture.php', - 'yii\test\Fixture' => YII_PATH . '/test/Fixture.php', - 'yii\test\FixtureTrait' => YII_PATH . '/test/FixtureTrait.php', - 'yii\test\InitDbFixture' => YII_PATH . '/test/InitDbFixture.php', - 'yii\validators\BooleanValidator' => YII_PATH . '/validators/BooleanValidator.php', - 'yii\validators\CompareValidator' => YII_PATH . '/validators/CompareValidator.php', - 'yii\validators\DateValidator' => YII_PATH . '/validators/DateValidator.php', - 'yii\validators\DefaultValueValidator' => YII_PATH . '/validators/DefaultValueValidator.php', - 'yii\validators\EmailValidator' => YII_PATH . '/validators/EmailValidator.php', - 'yii\validators\ExistValidator' => YII_PATH . '/validators/ExistValidator.php', - 'yii\validators\FileValidator' => YII_PATH . '/validators/FileValidator.php', - 'yii\validators\FilterValidator' => YII_PATH . '/validators/FilterValidator.php', - 'yii\validators\ImageValidator' => YII_PATH . '/validators/ImageValidator.php', - 'yii\validators\InlineValidator' => YII_PATH . '/validators/InlineValidator.php', - 'yii\validators\NumberValidator' => YII_PATH . '/validators/NumberValidator.php', - 'yii\validators\PunycodeAsset' => YII_PATH . '/validators/PunycodeAsset.php', - 'yii\validators\RangeValidator' => YII_PATH . '/validators/RangeValidator.php', - 'yii\validators\RegularExpressionValidator' => YII_PATH . '/validators/RegularExpressionValidator.php', - 'yii\validators\RequiredValidator' => YII_PATH . '/validators/RequiredValidator.php', - 'yii\validators\SafeValidator' => YII_PATH . '/validators/SafeValidator.php', - 'yii\validators\StringValidator' => YII_PATH . '/validators/StringValidator.php', - 'yii\validators\UniqueValidator' => YII_PATH . '/validators/UniqueValidator.php', - 'yii\validators\UrlValidator' => YII_PATH . '/validators/UrlValidator.php', - 'yii\validators\ValidationAsset' => YII_PATH . '/validators/ValidationAsset.php', - 'yii\validators\Validator' => YII_PATH . '/validators/Validator.php', - 'yii\web\Application' => YII_PATH . '/web/Application.php', - 'yii\web\AssetBundle' => YII_PATH . '/web/AssetBundle.php', - 'yii\web\AssetConverter' => YII_PATH . '/web/AssetConverter.php', - 'yii\web\AssetConverterInterface' => YII_PATH . '/web/AssetConverterInterface.php', - 'yii\web\AssetManager' => YII_PATH . '/web/AssetManager.php', - 'yii\web\BadRequestHttpException' => YII_PATH . '/web/BadRequestHttpException.php', - 'yii\web\CacheSession' => YII_PATH . '/web/CacheSession.php', - 'yii\web\CompositeUrlRule' => YII_PATH . '/web/CompositeUrlRule.php', - 'yii\web\ConflictHttpException' => YII_PATH . '/web/ConflictHttpException.php', - 'yii\web\Controller' => YII_PATH . '/web/Controller.php', - 'yii\web\Cookie' => YII_PATH . '/web/Cookie.php', - 'yii\web\CookieCollection' => YII_PATH . '/web/CookieCollection.php', - 'yii\web\DbSession' => YII_PATH . '/web/DbSession.php', - 'yii\web\ErrorAction' => YII_PATH . '/web/ErrorAction.php', - 'yii\web\ErrorHandler' => YII_PATH . '/web/ErrorHandler.php', - 'yii\web\ForbiddenHttpException' => YII_PATH . '/web/ForbiddenHttpException.php', - 'yii\web\GoneHttpException' => YII_PATH . '/web/GoneHttpException.php', - 'yii\web\GroupUrlRule' => YII_PATH . '/web/GroupUrlRule.php', - 'yii\web\HeaderCollection' => YII_PATH . '/web/HeaderCollection.php', - 'yii\web\HtmlResponseFormatter' => YII_PATH . '/web/HtmlResponseFormatter.php', - 'yii\web\HttpException' => YII_PATH . '/web/HttpException.php', - 'yii\web\IdentityInterface' => YII_PATH . '/web/IdentityInterface.php', - 'yii\web\JqueryAsset' => YII_PATH . '/web/JqueryAsset.php', - 'yii\web\JsExpression' => YII_PATH . '/web/JsExpression.php', - 'yii\web\JsonParser' => YII_PATH . '/web/JsonParser.php', - 'yii\web\JsonResponseFormatter' => YII_PATH . '/web/JsonResponseFormatter.php', - 'yii\web\Link' => YII_PATH . '/web/Link.php', - 'yii\web\Linkable' => YII_PATH . '/web/Linkable.php', - 'yii\web\MethodNotAllowedHttpException' => YII_PATH . '/web/MethodNotAllowedHttpException.php', - 'yii\web\NotAcceptableHttpException' => YII_PATH . '/web/NotAcceptableHttpException.php', - 'yii\web\NotFoundHttpException' => YII_PATH . '/web/NotFoundHttpException.php', - 'yii\web\Request' => YII_PATH . '/web/Request.php', - 'yii\web\RequestParserInterface' => YII_PATH . '/web/RequestParserInterface.php', - 'yii\web\Response' => YII_PATH . '/web/Response.php', - 'yii\web\ResponseFormatterInterface' => YII_PATH . '/web/ResponseFormatterInterface.php', - 'yii\web\Session' => YII_PATH . '/web/Session.php', - 'yii\web\SessionIterator' => YII_PATH . '/web/SessionIterator.php', - 'yii\web\TooManyRequestsHttpException' => YII_PATH . '/web/TooManyRequestsHttpException.php', - 'yii\web\UnauthorizedHttpException' => YII_PATH . '/web/UnauthorizedHttpException.php', - 'yii\web\UnsupportedMediaTypeHttpException' => YII_PATH . '/web/UnsupportedMediaTypeHttpException.php', - 'yii\web\UploadedFile' => YII_PATH . '/web/UploadedFile.php', - 'yii\web\UrlManager' => YII_PATH . '/web/UrlManager.php', - 'yii\web\UrlRule' => YII_PATH . '/web/UrlRule.php', - 'yii\web\UrlRuleInterface' => YII_PATH . '/web/UrlRuleInterface.php', - 'yii\web\User' => YII_PATH . '/web/User.php', - 'yii\web\UserEvent' => YII_PATH . '/web/UserEvent.php', - 'yii\web\View' => YII_PATH . '/web/View.php', - 'yii\web\ViewAction' => YII_PATH . '/web/ViewAction.php', - 'yii\web\XmlResponseFormatter' => YII_PATH . '/web/XmlResponseFormatter.php', - 'yii\web\YiiAsset' => YII_PATH . '/web/YiiAsset.php', - 'yii\widgets\ActiveField' => YII_PATH . '/widgets/ActiveField.php', - 'yii\widgets\ActiveForm' => YII_PATH . '/widgets/ActiveForm.php', - 'yii\widgets\ActiveFormAsset' => YII_PATH . '/widgets/ActiveFormAsset.php', - 'yii\widgets\BaseListView' => YII_PATH . '/widgets/BaseListView.php', - 'yii\widgets\Block' => YII_PATH . '/widgets/Block.php', - 'yii\widgets\Breadcrumbs' => YII_PATH . '/widgets/Breadcrumbs.php', - 'yii\widgets\ContentDecorator' => YII_PATH . '/widgets/ContentDecorator.php', - 'yii\widgets\DetailView' => YII_PATH . '/widgets/DetailView.php', - 'yii\widgets\FragmentCache' => YII_PATH . '/widgets/FragmentCache.php', - 'yii\widgets\InputWidget' => YII_PATH . '/widgets/InputWidget.php', - 'yii\widgets\LinkPager' => YII_PATH . '/widgets/LinkPager.php', - 'yii\widgets\LinkSorter' => YII_PATH . '/widgets/LinkSorter.php', - 'yii\widgets\ListView' => YII_PATH . '/widgets/ListView.php', - 'yii\widgets\MaskedInput' => YII_PATH . '/widgets/MaskedInput.php', - 'yii\widgets\MaskedInputAsset' => YII_PATH . '/widgets/MaskedInputAsset.php', - 'yii\widgets\Menu' => YII_PATH . '/widgets/Menu.php', - 'yii\widgets\Pjax' => YII_PATH . '/widgets/Pjax.php', - 'yii\widgets\PjaxAsset' => YII_PATH . '/widgets/PjaxAsset.php', - 'yii\widgets\Spaceless' => YII_PATH . '/widgets/Spaceless.php', + 'yii\base\Action' => YII2_PATH . '/base/Action.php', + 'yii\base\ActionEvent' => YII2_PATH . '/base/ActionEvent.php', + 'yii\base\ActionFilter' => YII2_PATH . '/base/ActionFilter.php', + 'yii\base\Application' => YII2_PATH . '/base/Application.php', + 'yii\base\ArrayAccessTrait' => YII2_PATH . '/base/ArrayAccessTrait.php', + 'yii\base\Arrayable' => YII2_PATH . '/base/Arrayable.php', + 'yii\base\ArrayableTrait' => YII2_PATH . '/base/ArrayableTrait.php', + 'yii\base\Behavior' => YII2_PATH . '/base/Behavior.php', + 'yii\base\BootstrapInterface' => YII2_PATH . '/base/BootstrapInterface.php', + 'yii\base\Component' => YII2_PATH . '/base/Component.php', + 'yii\base\Controller' => YII2_PATH . '/base/Controller.php', + 'yii\base\DynamicModel' => YII2_PATH . '/base/DynamicModel.php', + 'yii\base\ErrorException' => YII2_PATH . '/base/ErrorException.php', + 'yii\base\ErrorHandler' => YII2_PATH . '/base/ErrorHandler.php', + 'yii\base\Event' => YII2_PATH . '/base/Event.php', + 'yii\base\Exception' => YII2_PATH . '/base/Exception.php', + 'yii\base\ExitException' => YII2_PATH . '/base/ExitException.php', + 'yii\base\Formatter' => YII2_PATH . '/base/Formatter.php', + 'yii\base\InlineAction' => YII2_PATH . '/base/InlineAction.php', + 'yii\base\InvalidCallException' => YII2_PATH . '/base/InvalidCallException.php', + 'yii\base\InvalidConfigException' => YII2_PATH . '/base/InvalidConfigException.php', + 'yii\base\InvalidParamException' => YII2_PATH . '/base/InvalidParamException.php', + 'yii\base\InvalidRouteException' => YII2_PATH . '/base/InvalidRouteException.php', + 'yii\base\Model' => YII2_PATH . '/base/Model.php', + 'yii\base\ModelEvent' => YII2_PATH . '/base/ModelEvent.php', + 'yii\base\Module' => YII2_PATH . '/base/Module.php', + 'yii\base\NotSupportedException' => YII2_PATH . '/base/NotSupportedException.php', + 'yii\base\Object' => YII2_PATH . '/base/Object.php', + 'yii\base\Request' => YII2_PATH . '/base/Request.php', + 'yii\base\Response' => YII2_PATH . '/base/Response.php', + 'yii\base\Security' => YII2_PATH . '/base/Security.php', + 'yii\base\Theme' => YII2_PATH . '/base/Theme.php', + 'yii\base\UnknownClassException' => YII2_PATH . '/base/UnknownClassException.php', + 'yii\base\UnknownMethodException' => YII2_PATH . '/base/UnknownMethodException.php', + 'yii\base\UnknownPropertyException' => YII2_PATH . '/base/UnknownPropertyException.php', + 'yii\base\UserException' => YII2_PATH . '/base/UserException.php', + 'yii\base\View' => YII2_PATH . '/base/View.php', + 'yii\base\ViewContextInterface' => YII2_PATH . '/base/ViewContextInterface.php', + 'yii\base\ViewEvent' => YII2_PATH . '/base/ViewEvent.php', + 'yii\base\ViewRenderer' => YII2_PATH . '/base/ViewRenderer.php', + 'yii\base\Widget' => YII2_PATH . '/base/Widget.php', + 'yii\behaviors\AttributeBehavior' => YII2_PATH . '/behaviors/AttributeBehavior.php', + 'yii\behaviors\BlameableBehavior' => YII2_PATH . '/behaviors/BlameableBehavior.php', + 'yii\behaviors\SluggableBehavior' => YII2_PATH . '/behaviors/SluggableBehavior.php', + 'yii\behaviors\TimestampBehavior' => YII2_PATH . '/behaviors/TimestampBehavior.php', + 'yii\caching\ApcCache' => YII2_PATH . '/caching/ApcCache.php', + 'yii\caching\Cache' => YII2_PATH . '/caching/Cache.php', + 'yii\caching\ChainedDependency' => YII2_PATH . '/caching/ChainedDependency.php', + 'yii\caching\DbCache' => YII2_PATH . '/caching/DbCache.php', + 'yii\caching\DbDependency' => YII2_PATH . '/caching/DbDependency.php', + 'yii\caching\Dependency' => YII2_PATH . '/caching/Dependency.php', + 'yii\caching\DummyCache' => YII2_PATH . '/caching/DummyCache.php', + 'yii\caching\ExpressionDependency' => YII2_PATH . '/caching/ExpressionDependency.php', + 'yii\caching\FileCache' => YII2_PATH . '/caching/FileCache.php', + 'yii\caching\FileDependency' => YII2_PATH . '/caching/FileDependency.php', + 'yii\caching\MemCache' => YII2_PATH . '/caching/MemCache.php', + 'yii\caching\MemCacheServer' => YII2_PATH . '/caching/MemCacheServer.php', + 'yii\caching\TagDependency' => YII2_PATH . '/caching/TagDependency.php', + 'yii\caching\WinCache' => YII2_PATH . '/caching/WinCache.php', + 'yii\caching\XCache' => YII2_PATH . '/caching/XCache.php', + 'yii\caching\ZendDataCache' => YII2_PATH . '/caching/ZendDataCache.php', + 'yii\captcha\Captcha' => YII2_PATH . '/captcha/Captcha.php', + 'yii\captcha\CaptchaAction' => YII2_PATH . '/captcha/CaptchaAction.php', + 'yii\captcha\CaptchaAsset' => YII2_PATH . '/captcha/CaptchaAsset.php', + 'yii\captcha\CaptchaValidator' => YII2_PATH . '/captcha/CaptchaValidator.php', + 'yii\data\ActiveDataProvider' => YII2_PATH . '/data/ActiveDataProvider.php', + 'yii\data\ArrayDataProvider' => YII2_PATH . '/data/ArrayDataProvider.php', + 'yii\data\BaseDataProvider' => YII2_PATH . '/data/BaseDataProvider.php', + 'yii\data\DataProviderInterface' => YII2_PATH . '/data/DataProviderInterface.php', + 'yii\data\Pagination' => YII2_PATH . '/data/Pagination.php', + 'yii\data\Sort' => YII2_PATH . '/data/Sort.php', + 'yii\data\SqlDataProvider' => YII2_PATH . '/data/SqlDataProvider.php', + 'yii\db\ActiveQuery' => YII2_PATH . '/db/ActiveQuery.php', + 'yii\db\ActiveQueryInterface' => YII2_PATH . '/db/ActiveQueryInterface.php', + 'yii\db\ActiveQueryTrait' => YII2_PATH . '/db/ActiveQueryTrait.php', + 'yii\db\ActiveRecord' => YII2_PATH . '/db/ActiveRecord.php', + 'yii\db\ActiveRecordInterface' => YII2_PATH . '/db/ActiveRecordInterface.php', + 'yii\db\ActiveRelationTrait' => YII2_PATH . '/db/ActiveRelationTrait.php', + 'yii\db\AfterSaveEvent' => YII2_PATH . '/db/AfterSaveEvent.php', + 'yii\db\BaseActiveRecord' => YII2_PATH . '/db/BaseActiveRecord.php', + 'yii\db\BatchQueryResult' => YII2_PATH . '/db/BatchQueryResult.php', + 'yii\db\ColumnSchema' => YII2_PATH . '/db/ColumnSchema.php', + 'yii\db\Command' => YII2_PATH . '/db/Command.php', + 'yii\db\Connection' => YII2_PATH . '/db/Connection.php', + 'yii\db\DataReader' => YII2_PATH . '/db/DataReader.php', + 'yii\db\Exception' => YII2_PATH . '/db/Exception.php', + 'yii\db\Expression' => YII2_PATH . '/db/Expression.php', + 'yii\db\IntegrityException' => YII2_PATH . '/db/IntegrityException.php', + 'yii\db\Migration' => YII2_PATH . '/db/Migration.php', + 'yii\db\MigrationInterface' => YII2_PATH . '/db/MigrationInterface.php', + 'yii\db\Query' => YII2_PATH . '/db/Query.php', + 'yii\db\QueryBuilder' => YII2_PATH . '/db/QueryBuilder.php', + 'yii\db\QueryInterface' => YII2_PATH . '/db/QueryInterface.php', + 'yii\db\QueryTrait' => YII2_PATH . '/db/QueryTrait.php', + 'yii\db\Schema' => YII2_PATH . '/db/Schema.php', + 'yii\db\StaleObjectException' => YII2_PATH . '/db/StaleObjectException.php', + 'yii\db\TableSchema' => YII2_PATH . '/db/TableSchema.php', + 'yii\db\Transaction' => YII2_PATH . '/db/Transaction.php', + 'yii\db\cubrid\QueryBuilder' => YII2_PATH . '/db/cubrid/QueryBuilder.php', + 'yii\db\cubrid\Schema' => YII2_PATH . '/db/cubrid/Schema.php', + 'yii\db\mssql\PDO' => YII2_PATH . '/db/mssql/PDO.php', + 'yii\db\mssql\QueryBuilder' => YII2_PATH . '/db/mssql/QueryBuilder.php', + 'yii\db\mssql\Schema' => YII2_PATH . '/db/mssql/Schema.php', + 'yii\db\mssql\SqlsrvPDO' => YII2_PATH . '/db/mssql/SqlsrvPDO.php', + 'yii\db\mssql\TableSchema' => YII2_PATH . '/db/mssql/TableSchema.php', + 'yii\db\mysql\QueryBuilder' => YII2_PATH . '/db/mysql/QueryBuilder.php', + 'yii\db\mysql\Schema' => YII2_PATH . '/db/mysql/Schema.php', + 'yii\db\oci\QueryBuilder' => YII2_PATH . '/db/oci/QueryBuilder.php', + 'yii\db\oci\Schema' => YII2_PATH . '/db/oci/Schema.php', + 'yii\db\pgsql\QueryBuilder' => YII2_PATH . '/db/pgsql/QueryBuilder.php', + 'yii\db\pgsql\Schema' => YII2_PATH . '/db/pgsql/Schema.php', + 'yii\db\sqlite\QueryBuilder' => YII2_PATH . '/db/sqlite/QueryBuilder.php', + 'yii\db\sqlite\Schema' => YII2_PATH . '/db/sqlite/Schema.php', + 'yii\di\Container' => YII2_PATH . '/di/Container.php', + 'yii\di\Instance' => YII2_PATH . '/di/Instance.php', + 'yii\di\ServiceLocator' => YII2_PATH . '/di/ServiceLocator.php', + 'yii\filters\AccessControl' => YII2_PATH . '/filters/AccessControl.php', + 'yii\filters\AccessRule' => YII2_PATH . '/filters/AccessRule.php', + 'yii\filters\ContentNegotiator' => YII2_PATH . '/filters/ContentNegotiator.php', + 'yii\filters\Cors' => YII2_PATH . '/filters/Cors.php', + 'yii\filters\HttpCache' => YII2_PATH . '/filters/HttpCache.php', + 'yii\filters\PageCache' => YII2_PATH . '/filters/PageCache.php', + 'yii\filters\RateLimitInterface' => YII2_PATH . '/filters/RateLimitInterface.php', + 'yii\filters\RateLimiter' => YII2_PATH . '/filters/RateLimiter.php', + 'yii\filters\VerbFilter' => YII2_PATH . '/filters/VerbFilter.php', + 'yii\filters\auth\AuthInterface' => YII2_PATH . '/filters/auth/AuthInterface.php', + 'yii\filters\auth\AuthMethod' => YII2_PATH . '/filters/auth/AuthMethod.php', + 'yii\filters\auth\CompositeAuth' => YII2_PATH . '/filters/auth/CompositeAuth.php', + 'yii\filters\auth\HttpBasicAuth' => YII2_PATH . '/filters/auth/HttpBasicAuth.php', + 'yii\filters\auth\HttpBearerAuth' => YII2_PATH . '/filters/auth/HttpBearerAuth.php', + 'yii\filters\auth\QueryParamAuth' => YII2_PATH . '/filters/auth/QueryParamAuth.php', + 'yii\grid\ActionColumn' => YII2_PATH . '/grid/ActionColumn.php', + 'yii\grid\CheckboxColumn' => YII2_PATH . '/grid/CheckboxColumn.php', + 'yii\grid\Column' => YII2_PATH . '/grid/Column.php', + 'yii\grid\DataColumn' => YII2_PATH . '/grid/DataColumn.php', + 'yii\grid\GridView' => YII2_PATH . '/grid/GridView.php', + 'yii\grid\GridViewAsset' => YII2_PATH . '/grid/GridViewAsset.php', + 'yii\grid\SerialColumn' => YII2_PATH . '/grid/SerialColumn.php', + 'yii\helpers\ArrayHelper' => YII2_PATH . '/helpers/ArrayHelper.php', + 'yii\helpers\BaseArrayHelper' => YII2_PATH . '/helpers/BaseArrayHelper.php', + 'yii\helpers\BaseConsole' => YII2_PATH . '/helpers/BaseConsole.php', + 'yii\helpers\BaseFileHelper' => YII2_PATH . '/helpers/BaseFileHelper.php', + 'yii\helpers\BaseHtml' => YII2_PATH . '/helpers/BaseHtml.php', + 'yii\helpers\BaseHtmlPurifier' => YII2_PATH . '/helpers/BaseHtmlPurifier.php', + 'yii\helpers\BaseInflector' => YII2_PATH . '/helpers/BaseInflector.php', + 'yii\helpers\BaseJson' => YII2_PATH . '/helpers/BaseJson.php', + 'yii\helpers\BaseMarkdown' => YII2_PATH . '/helpers/BaseMarkdown.php', + 'yii\helpers\BaseStringHelper' => YII2_PATH . '/helpers/BaseStringHelper.php', + 'yii\helpers\BaseUrl' => YII2_PATH . '/helpers/BaseUrl.php', + 'yii\helpers\BaseVarDumper' => YII2_PATH . '/helpers/BaseVarDumper.php', + 'yii\helpers\Console' => YII2_PATH . '/helpers/Console.php', + 'yii\helpers\FileHelper' => YII2_PATH . '/helpers/FileHelper.php', + 'yii\helpers\Html' => YII2_PATH . '/helpers/Html.php', + 'yii\helpers\HtmlPurifier' => YII2_PATH . '/helpers/HtmlPurifier.php', + 'yii\helpers\Inflector' => YII2_PATH . '/helpers/Inflector.php', + 'yii\helpers\Json' => YII2_PATH . '/helpers/Json.php', + 'yii\helpers\Markdown' => YII2_PATH . '/helpers/Markdown.php', + 'yii\helpers\StringHelper' => YII2_PATH . '/helpers/StringHelper.php', + 'yii\helpers\Url' => YII2_PATH . '/helpers/Url.php', + 'yii\helpers\VarDumper' => YII2_PATH . '/helpers/VarDumper.php', + 'yii\i18n\DbMessageSource' => YII2_PATH . '/i18n/DbMessageSource.php', + 'yii\i18n\Formatter' => YII2_PATH . '/i18n/Formatter.php', + 'yii\i18n\GettextFile' => YII2_PATH . '/i18n/GettextFile.php', + 'yii\i18n\GettextMessageSource' => YII2_PATH . '/i18n/GettextMessageSource.php', + 'yii\i18n\GettextMoFile' => YII2_PATH . '/i18n/GettextMoFile.php', + 'yii\i18n\GettextPoFile' => YII2_PATH . '/i18n/GettextPoFile.php', + 'yii\i18n\I18N' => YII2_PATH . '/i18n/I18N.php', + 'yii\i18n\MessageFormatter' => YII2_PATH . '/i18n/MessageFormatter.php', + 'yii\i18n\MessageSource' => YII2_PATH . '/i18n/MessageSource.php', + 'yii\i18n\MissingTranslationEvent' => YII2_PATH . '/i18n/MissingTranslationEvent.php', + 'yii\i18n\PhpMessageSource' => YII2_PATH . '/i18n/PhpMessageSource.php', + 'yii\log\DbTarget' => YII2_PATH . '/log/DbTarget.php', + 'yii\log\Dispatcher' => YII2_PATH . '/log/Dispatcher.php', + 'yii\log\EmailTarget' => YII2_PATH . '/log/EmailTarget.php', + 'yii\log\FileTarget' => YII2_PATH . '/log/FileTarget.php', + 'yii\log\Logger' => YII2_PATH . '/log/Logger.php', + 'yii\log\SyslogTarget' => YII2_PATH . '/log/SyslogTarget.php', + 'yii\log\Target' => YII2_PATH . '/log/Target.php', + 'yii\mail\BaseMailer' => YII2_PATH . '/mail/BaseMailer.php', + 'yii\mail\BaseMessage' => YII2_PATH . '/mail/BaseMessage.php', + 'yii\mail\MailEvent' => YII2_PATH . '/mail/MailEvent.php', + 'yii\mail\MailerInterface' => YII2_PATH . '/mail/MailerInterface.php', + 'yii\mail\MessageInterface' => YII2_PATH . '/mail/MessageInterface.php', + 'yii\mutex\DbMutex' => YII2_PATH . '/mutex/DbMutex.php', + 'yii\mutex\FileMutex' => YII2_PATH . '/mutex/FileMutex.php', + 'yii\mutex\Mutex' => YII2_PATH . '/mutex/Mutex.php', + 'yii\mutex\MysqlMutex' => YII2_PATH . '/mutex/MysqlMutex.php', + 'yii\rbac\Assignment' => YII2_PATH . '/rbac/Assignment.php', + 'yii\rbac\BaseManager' => YII2_PATH . '/rbac/BaseManager.php', + 'yii\rbac\DbManager' => YII2_PATH . '/rbac/DbManager.php', + 'yii\rbac\Item' => YII2_PATH . '/rbac/Item.php', + 'yii\rbac\ManagerInterface' => YII2_PATH . '/rbac/ManagerInterface.php', + 'yii\rbac\Permission' => YII2_PATH . '/rbac/Permission.php', + 'yii\rbac\PhpManager' => YII2_PATH . '/rbac/PhpManager.php', + 'yii\rbac\Role' => YII2_PATH . '/rbac/Role.php', + 'yii\rbac\Rule' => YII2_PATH . '/rbac/Rule.php', + 'yii\requirements\YiiRequirementChecker' => YII2_PATH . '/requirements/YiiRequirementChecker.php', + 'yii\rest\Action' => YII2_PATH . '/rest/Action.php', + 'yii\rest\ActiveController' => YII2_PATH . '/rest/ActiveController.php', + 'yii\rest\Controller' => YII2_PATH . '/rest/Controller.php', + 'yii\rest\CreateAction' => YII2_PATH . '/rest/CreateAction.php', + 'yii\rest\DeleteAction' => YII2_PATH . '/rest/DeleteAction.php', + 'yii\rest\IndexAction' => YII2_PATH . '/rest/IndexAction.php', + 'yii\rest\OptionsAction' => YII2_PATH . '/rest/OptionsAction.php', + 'yii\rest\Serializer' => YII2_PATH . '/rest/Serializer.php', + 'yii\rest\UpdateAction' => YII2_PATH . '/rest/UpdateAction.php', + 'yii\rest\UrlRule' => YII2_PATH . '/rest/UrlRule.php', + 'yii\rest\ViewAction' => YII2_PATH . '/rest/ViewAction.php', + 'yii\test\ActiveFixture' => YII2_PATH . '/test/ActiveFixture.php', + 'yii\test\BaseActiveFixture' => YII2_PATH . '/test/BaseActiveFixture.php', + 'yii\test\DbFixture' => YII2_PATH . '/test/DbFixture.php', + 'yii\test\Fixture' => YII2_PATH . '/test/Fixture.php', + 'yii\test\FixtureTrait' => YII2_PATH . '/test/FixtureTrait.php', + 'yii\test\InitDbFixture' => YII2_PATH . '/test/InitDbFixture.php', + 'yii\validators\BooleanValidator' => YII2_PATH . '/validators/BooleanValidator.php', + 'yii\validators\CompareValidator' => YII2_PATH . '/validators/CompareValidator.php', + 'yii\validators\DateValidator' => YII2_PATH . '/validators/DateValidator.php', + 'yii\validators\DefaultValueValidator' => YII2_PATH . '/validators/DefaultValueValidator.php', + 'yii\validators\EmailValidator' => YII2_PATH . '/validators/EmailValidator.php', + 'yii\validators\ExistValidator' => YII2_PATH . '/validators/ExistValidator.php', + 'yii\validators\FileValidator' => YII2_PATH . '/validators/FileValidator.php', + 'yii\validators\FilterValidator' => YII2_PATH . '/validators/FilterValidator.php', + 'yii\validators\ImageValidator' => YII2_PATH . '/validators/ImageValidator.php', + 'yii\validators\InlineValidator' => YII2_PATH . '/validators/InlineValidator.php', + 'yii\validators\NumberValidator' => YII2_PATH . '/validators/NumberValidator.php', + 'yii\validators\PunycodeAsset' => YII2_PATH . '/validators/PunycodeAsset.php', + 'yii\validators\RangeValidator' => YII2_PATH . '/validators/RangeValidator.php', + 'yii\validators\RegularExpressionValidator' => YII2_PATH . '/validators/RegularExpressionValidator.php', + 'yii\validators\RequiredValidator' => YII2_PATH . '/validators/RequiredValidator.php', + 'yii\validators\SafeValidator' => YII2_PATH . '/validators/SafeValidator.php', + 'yii\validators\StringValidator' => YII2_PATH . '/validators/StringValidator.php', + 'yii\validators\UniqueValidator' => YII2_PATH . '/validators/UniqueValidator.php', + 'yii\validators\UrlValidator' => YII2_PATH . '/validators/UrlValidator.php', + 'yii\validators\ValidationAsset' => YII2_PATH . '/validators/ValidationAsset.php', + 'yii\validators\Validator' => YII2_PATH . '/validators/Validator.php', + 'yii\web\Application' => YII2_PATH . '/web/Application.php', + 'yii\web\AssetBundle' => YII2_PATH . '/web/AssetBundle.php', + 'yii\web\AssetConverter' => YII2_PATH . '/web/AssetConverter.php', + 'yii\web\AssetConverterInterface' => YII2_PATH . '/web/AssetConverterInterface.php', + 'yii\web\AssetManager' => YII2_PATH . '/web/AssetManager.php', + 'yii\web\BadRequestHttpException' => YII2_PATH . '/web/BadRequestHttpException.php', + 'yii\web\CacheSession' => YII2_PATH . '/web/CacheSession.php', + 'yii\web\CompositeUrlRule' => YII2_PATH . '/web/CompositeUrlRule.php', + 'yii\web\ConflictHttpException' => YII2_PATH . '/web/ConflictHttpException.php', + 'yii\web\Controller' => YII2_PATH . '/web/Controller.php', + 'yii\web\Cookie' => YII2_PATH . '/web/Cookie.php', + 'yii\web\CookieCollection' => YII2_PATH . '/web/CookieCollection.php', + 'yii\web\DbSession' => YII2_PATH . '/web/DbSession.php', + 'yii\web\ErrorAction' => YII2_PATH . '/web/ErrorAction.php', + 'yii\web\ErrorHandler' => YII2_PATH . '/web/ErrorHandler.php', + 'yii\web\ForbiddenHttpException' => YII2_PATH . '/web/ForbiddenHttpException.php', + 'yii\web\GoneHttpException' => YII2_PATH . '/web/GoneHttpException.php', + 'yii\web\GroupUrlRule' => YII2_PATH . '/web/GroupUrlRule.php', + 'yii\web\HeaderCollection' => YII2_PATH . '/web/HeaderCollection.php', + 'yii\web\HtmlResponseFormatter' => YII2_PATH . '/web/HtmlResponseFormatter.php', + 'yii\web\HttpException' => YII2_PATH . '/web/HttpException.php', + 'yii\web\IdentityInterface' => YII2_PATH . '/web/IdentityInterface.php', + 'yii\web\JqueryAsset' => YII2_PATH . '/web/JqueryAsset.php', + 'yii\web\JsExpression' => YII2_PATH . '/web/JsExpression.php', + 'yii\web\JsonParser' => YII2_PATH . '/web/JsonParser.php', + 'yii\web\JsonResponseFormatter' => YII2_PATH . '/web/JsonResponseFormatter.php', + 'yii\web\Link' => YII2_PATH . '/web/Link.php', + 'yii\web\Linkable' => YII2_PATH . '/web/Linkable.php', + 'yii\web\MethodNotAllowedHttpException' => YII2_PATH . '/web/MethodNotAllowedHttpException.php', + 'yii\web\NotAcceptableHttpException' => YII2_PATH . '/web/NotAcceptableHttpException.php', + 'yii\web\NotFoundHttpException' => YII2_PATH . '/web/NotFoundHttpException.php', + 'yii\web\Request' => YII2_PATH . '/web/Request.php', + 'yii\web\RequestParserInterface' => YII2_PATH . '/web/RequestParserInterface.php', + 'yii\web\Response' => YII2_PATH . '/web/Response.php', + 'yii\web\ResponseFormatterInterface' => YII2_PATH . '/web/ResponseFormatterInterface.php', + 'yii\web\Session' => YII2_PATH . '/web/Session.php', + 'yii\web\SessionIterator' => YII2_PATH . '/web/SessionIterator.php', + 'yii\web\TooManyRequestsHttpException' => YII2_PATH . '/web/TooManyRequestsHttpException.php', + 'yii\web\UnauthorizedHttpException' => YII2_PATH . '/web/UnauthorizedHttpException.php', + 'yii\web\UnsupportedMediaTypeHttpException' => YII2_PATH . '/web/UnsupportedMediaTypeHttpException.php', + 'yii\web\UploadedFile' => YII2_PATH . '/web/UploadedFile.php', + 'yii\web\UrlManager' => YII2_PATH . '/web/UrlManager.php', + 'yii\web\UrlRule' => YII2_PATH . '/web/UrlRule.php', + 'yii\web\UrlRuleInterface' => YII2_PATH . '/web/UrlRuleInterface.php', + 'yii\web\User' => YII2_PATH . '/web/User.php', + 'yii\web\UserEvent' => YII2_PATH . '/web/UserEvent.php', + 'yii\web\View' => YII2_PATH . '/web/View.php', + 'yii\web\ViewAction' => YII2_PATH . '/web/ViewAction.php', + 'yii\web\XmlResponseFormatter' => YII2_PATH . '/web/XmlResponseFormatter.php', + 'yii\web\YiiAsset' => YII2_PATH . '/web/YiiAsset.php', + 'yii\widgets\ActiveField' => YII2_PATH . '/widgets/ActiveField.php', + 'yii\widgets\ActiveForm' => YII2_PATH . '/widgets/ActiveForm.php', + 'yii\widgets\ActiveFormAsset' => YII2_PATH . '/widgets/ActiveFormAsset.php', + 'yii\widgets\BaseListView' => YII2_PATH . '/widgets/BaseListView.php', + 'yii\widgets\Block' => YII2_PATH . '/widgets/Block.php', + 'yii\widgets\Breadcrumbs' => YII2_PATH . '/widgets/Breadcrumbs.php', + 'yii\widgets\ContentDecorator' => YII2_PATH . '/widgets/ContentDecorator.php', + 'yii\widgets\DetailView' => YII2_PATH . '/widgets/DetailView.php', + 'yii\widgets\FragmentCache' => YII2_PATH . '/widgets/FragmentCache.php', + 'yii\widgets\InputWidget' => YII2_PATH . '/widgets/InputWidget.php', + 'yii\widgets\LinkPager' => YII2_PATH . '/widgets/LinkPager.php', + 'yii\widgets\LinkSorter' => YII2_PATH . '/widgets/LinkSorter.php', + 'yii\widgets\ListView' => YII2_PATH . '/widgets/ListView.php', + 'yii\widgets\MaskedInput' => YII2_PATH . '/widgets/MaskedInput.php', + 'yii\widgets\MaskedInputAsset' => YII2_PATH . '/widgets/MaskedInputAsset.php', + 'yii\widgets\Menu' => YII2_PATH . '/widgets/Menu.php', + 'yii\widgets\Pjax' => YII2_PATH . '/widgets/Pjax.php', + 'yii\widgets\PjaxAsset' => YII2_PATH . '/widgets/PjaxAsset.php', + 'yii\widgets\Spaceless' => YII2_PATH . '/widgets/Spaceless.php', ]; diff --git a/framework/i18n/Formatter.php b/framework/i18n/Formatter.php index 592c755c22..96f7ad7860 100644 --- a/framework/i18n/Formatter.php +++ b/framework/i18n/Formatter.php @@ -249,7 +249,7 @@ class Formatter extends \yii\base\Formatter /** * Formats the value as a decimal number. * @param mixed $value the value to be formatted - * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details) + * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#details) * for details on how to specify a format. * @return string the formatted result. */ @@ -267,7 +267,7 @@ class Formatter extends \yii\base\Formatter * @param mixed $value the value to be formatted * @param string $currency the 3-letter ISO 4217 currency code indicating the currency to use. * If null, [[currencyCode]] will be used. - * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details) + * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#details) * for details on how to specify a format. * @return string the formatted result. */ @@ -287,7 +287,7 @@ class Formatter extends \yii\base\Formatter /** * Formats the value as a percent number. * @param mixed $value the value to be formatted - * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details) + * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#details) * for details on how to specify a format. * @return string the formatted result. */ @@ -303,7 +303,7 @@ class Formatter extends \yii\base\Formatter /** * Formats the value as a scientific number. * @param mixed $value the value to be formatted - * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details) + * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#details) * for details on how to specify a format. * @return string the formatted result. */ @@ -319,7 +319,7 @@ class Formatter extends \yii\base\Formatter /** * Creates a number formatter based on the given type and format. * @param integer $type the type of the number formatter - * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details) + * @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#details) * @return NumberFormatter the created formatter instance */ protected function createNumberFormatter($type, $format) diff --git a/framework/log/Logger.php b/framework/log/Logger.php index f53eb784cb..702ece9b9e 100644 --- a/framework/log/Logger.php +++ b/framework/log/Logger.php @@ -141,7 +141,7 @@ class Logger extends Component $ts = debug_backtrace(); array_pop($ts); // remove the last trace since it would be the entry script, not very useful foreach ($ts as $trace) { - if (isset($trace['file'], $trace['line']) && strpos($trace['file'], YII_PATH) !== 0) { + if (isset($trace['file'], $trace['line']) && strpos($trace['file'], YII2_PATH) !== 0) { unset($trace['object'], $trace['args']); $traces[] = $trace; if (++$count >= $this->traceLevel) { diff --git a/framework/rbac/PhpManager.php b/framework/rbac/PhpManager.php index 64698048cb..ce5fe4148b 100644 --- a/framework/rbac/PhpManager.php +++ b/framework/rbac/PhpManager.php @@ -23,6 +23,9 @@ use yii\helpers\VarDumper; * (for example, the authorization data for a personal blog system). * Use [[DbManager]] for more complex authorization data. * + * Note that PhpManager is not compatible with facebooks [HHVM](http://hhvm.com/) because + * it relies on writing php files and including them afterwards which is not supported by HHVM. + * * @author Qiang Xue * @author Alexander Kochetov * @author Christophe Boulain diff --git a/framework/web/ErrorHandler.php b/framework/web/ErrorHandler.php index 864bf6ddfe..b7255439ca 100644 --- a/framework/web/ErrorHandler.php +++ b/framework/web/ErrorHandler.php @@ -278,7 +278,7 @@ class ErrorHandler extends \yii\base\ErrorHandler */ public function isCoreFile($file) { - return $file === null || strpos(realpath($file), YII_PATH . DIRECTORY_SEPARATOR) === 0; + return $file === null || strpos(realpath($file), YII2_PATH . DIRECTORY_SEPARATOR) === 0; } /** diff --git a/framework/web/Response.php b/framework/web/Response.php index bffc4889bf..f46a1ec82e 100644 --- a/framework/web/Response.php +++ b/framework/web/Response.php @@ -455,24 +455,19 @@ class Response extends \yii\base\Response public function sendContentAsFile($content, $attachmentName, $mimeType = 'application/octet-stream') { $headers = $this->getHeaders(); + $contentLength = StringHelper::byteLength($content); $range = $this->getHttpRange($contentLength); + if ($range === false) { $headers->set('Content-Range', "bytes */$contentLength"); throw new HttpException(416, 'Requested range not satisfiable'); } - $headers->setDefault('Pragma', 'public') - ->setDefault('Accept-Ranges', 'bytes') - ->setDefault('Expires', '0') - ->setDefault('Content-Type', $mimeType) - ->setDefault('Cache-Control', 'must-revalidate, post-check=0, pre-check=0') - ->setDefault('Content-Transfer-Encoding', 'binary') - ->setDefault('Content-Length', StringHelper::byteLength($content)) - ->setDefault('Content-Disposition', "attachment; filename=\"$attachmentName\""); + $this->setDownloadHeaders($attachmentName, $mimeType, $contentLength); list($begin, $end) = $range; - if ($begin !=0 || $end != $contentLength - 1) { + if ($begin != 0 || $end != $contentLength - 1) { $this->setStatusCode(206); $headers->set('Content-Range', "bytes $begin-$end/$contentLength"); $this->content = StringHelper::byteSubstr($content, $begin, $end - $begin + 1); @@ -511,25 +506,46 @@ class Response extends \yii\base\Response } list($begin, $end) = $range; - if ($begin !=0 || $end != $fileSize - 1) { + if ($begin != 0 || $end != $fileSize - 1) { $this->setStatusCode(206); $headers->set('Content-Range', "bytes $begin-$end/$fileSize"); } else { $this->setStatusCode(200); } - $length = $end - $begin + 1; + $this->setDownloadHeaders($attachmentName, $mimeType, $end - $begin + 1); + + $this->format = self::FORMAT_RAW; + $this->stream = [$handle, $begin, $end]; + + return $this; + } + + /** + * Sets a default set of HTTP headers for file downloading purpose. + * @param string $attachmentName the attachment file name + * @param string $mimeType the MIME type for the response. If null, `Content-Type` header will NOT be set. + * @param integer $contentLength the byte length of the file being downloaded. If null, `Content-Length` header will NOT be set. + * @return static the response object itself + */ + public function setDownloadHeaders($attachmentName, $mimeType = null, $contentLength = null) + { + $headers = $this->getHeaders(); $headers->setDefault('Pragma', 'public') ->setDefault('Accept-Ranges', 'bytes') ->setDefault('Expires', '0') - ->setDefault('Content-Type', $mimeType) ->setDefault('Cache-Control', 'must-revalidate, post-check=0, pre-check=0') ->setDefault('Content-Transfer-Encoding', 'binary') - ->setDefault('Content-Length', $length) ->setDefault('Content-Disposition', "attachment; filename=\"$attachmentName\""); - $this->format = self::FORMAT_RAW; - $this->stream = [$handle, $begin, $end]; + + if ($mimeType !== null) { + $headers->setDefault('Content-Type', $mimeType); + } + + if ($contentLength !== null) { + $headers->setDefault('Content-Length', $contentLength); + } return $this; } diff --git a/tests/unit/data/travis/cubrid-setup.sh b/tests/unit/data/travis/cubrid-setup.sh index 4188e178b4..13b0a4ba8e 100755 --- a/tests/unit/data/travis/cubrid-setup.sh +++ b/tests/unit/data/travis/cubrid-setup.sh @@ -2,7 +2,7 @@ # # install CUBRID DBMS -if (php --version | grep -i HHVM > /dev/null); then +if (php --version | grep -i HipHop > /dev/null); then echo "Skipping CUBRID on HHVM" exit 0 fi diff --git a/tests/unit/data/travis/init-apps.sh b/tests/unit/data/travis/init-apps.sh index 214e283a15..d5980bcde5 100755 --- a/tests/unit/data/travis/init-apps.sh +++ b/tests/unit/data/travis/init-apps.sh @@ -1,6 +1,6 @@ #!/bin/sh -if (php --version | grep -i HHVM > /dev/null); then +if (php --version | grep -i HipHop > /dev/null); then echo "skipping application init on HHVM" else diff --git a/tests/unit/data/travis/memcache-setup.sh b/tests/unit/data/travis/memcache-setup.sh index a2308c676a..38be22bdaa 100755 --- a/tests/unit/data/travis/memcache-setup.sh +++ b/tests/unit/data/travis/memcache-setup.sh @@ -1,6 +1,6 @@ #!/bin/sh -if (php --version | grep -i HHVM > /dev/null); then +if (php --version | grep -i HipHop > /dev/null); then echo "skipping memcache on HHVM" else mkdir -p ~/.phpenv/versions/$(phpenv version-name)/etc diff --git a/tests/unit/data/travis/setup-apps.sh b/tests/unit/data/travis/setup-apps.sh index fdb168add4..c35debd24d 100755 --- a/tests/unit/data/travis/setup-apps.sh +++ b/tests/unit/data/travis/setup-apps.sh @@ -1,6 +1,6 @@ #!/bin/sh -if (php --version | grep -i HHVM > /dev/null); then +if (php --version | grep -i HipHop > /dev/null); then echo "skipping application setup on HHVM" else diff --git a/tests/unit/framework/BaseYiiTest.php b/tests/unit/framework/BaseYiiTest.php index ccc8d30b6c..4168382552 100644 --- a/tests/unit/framework/BaseYiiTest.php +++ b/tests/unit/framework/BaseYiiTest.php @@ -26,7 +26,7 @@ class BaseYiiTest extends TestCase public function testAlias() { - $this->assertEquals(YII_PATH, Yii::getAlias('@yii')); + $this->assertEquals(YII2_PATH, Yii::getAlias('@yii')); Yii::$aliases = []; $this->assertFalse(Yii::getAlias('@yii', false)); diff --git a/tests/unit/framework/base/FormatterTest.php b/tests/unit/framework/base/FormatterTest.php index 1643b8eacf..02090e8321 100644 --- a/tests/unit/framework/base/FormatterTest.php +++ b/tests/unit/framework/base/FormatterTest.php @@ -265,7 +265,10 @@ class FormatterTest extends TestCase $this->assertSame('12 years ago', $this->formatter->asRelativeTime($interval_12_years)); // Pass a DateInterval string - $this->assertSame('a year ago', $this->formatter->asRelativeTime('2007-03-01T13:00:00Z/2008-05-11T15:30:00Z')); + if (!defined('HHVM_VERSION')) { + // TODO format not supported by HHVM currently https://github.com/facebook/hhvm/issues/2952 + $this->assertSame('a year ago', $this->formatter->asRelativeTime('2007-03-01T13:00:00Z/2008-05-11T15:30:00Z')); + } $this->assertSame('a year ago', $this->formatter->asRelativeTime('2007-03-01T13:00:00Z/P1Y2M10DT2H30M')); $this->assertSame('a year ago', $this->formatter->asRelativeTime('P1Y2M10DT2H30M/2008-05-11T15:30:00Z')); $this->assertSame('a year ago', $this->formatter->asRelativeTime('P1Y2M10DT2H30M')); @@ -324,7 +327,10 @@ class FormatterTest extends TestCase $this->assertSame('in 12 years', $this->formatter->asRelativeTime($interval_12_years)); // Pass a inverted DateInterval string - $this->assertSame('in a year', $this->formatter->asRelativeTime('2008-05-11T15:30:00Z/2007-03-01T13:00:00Z')); + if (!defined('HHVM_VERSION')) { + // TODO format not supported by HHVM currently https://github.com/facebook/hhvm/issues/2952 + $this->assertSame('in a year', $this->formatter->asRelativeTime('2008-05-11T15:30:00Z/2007-03-01T13:00:00Z')); + } // Force the reference time and pass a future DateTime $dateNow = new DateTime('2014-03-13'); diff --git a/tests/unit/framework/console/controllers/POMessageControllerTest.php b/tests/unit/framework/console/controllers/POMessageControllerTest.php index 95d4e2fae5..6209a4c611 100644 --- a/tests/unit/framework/console/controllers/POMessageControllerTest.php +++ b/tests/unit/framework/console/controllers/POMessageControllerTest.php @@ -17,6 +17,11 @@ class POMessageControllerTest extends BaseMessageControllerTest public function setUp() { parent::setUp(); + + if (defined('HHVM_VERSION')) { + $this->markTestSkipped('POMessageControllerTest can not run on HHVM because it relies on saving and re-including PHP files which is not supported by HHVM.'); + } + $this->messagePath = Yii::getAlias('@yiiunit/runtime/test_messages'); FileHelper::createDirectory($this->messagePath, 0777); } diff --git a/tests/unit/framework/db/CommandTest.php b/tests/unit/framework/db/CommandTest.php index 4341755c5c..936db53154 100644 --- a/tests/unit/framework/db/CommandTest.php +++ b/tests/unit/framework/db/CommandTest.php @@ -188,7 +188,7 @@ class CommandTest extends DatabaseTestCase $this->assertEquals($blobCol, stream_get_contents($row['blob_col'])); } $this->assertEquals($numericCol, $row['numeric_col']); - if ($this->driverName === 'mysql') { + if ($this->driverName === 'mysql' || defined('HHVM_VERSION') && $this->driverName === 'sqlite') { $this->assertEquals($boolCol, (int)$row['bool_col']); } else { $this->assertEquals($boolCol, $row['bool_col']); diff --git a/tests/unit/framework/i18n/FormatterTest.php b/tests/unit/framework/i18n/FormatterTest.php index f457cbca4d..580b86a918 100644 --- a/tests/unit/framework/i18n/FormatterTest.php +++ b/tests/unit/framework/i18n/FormatterTest.php @@ -47,12 +47,19 @@ class FormatterTest extends TestCase $value = '123456'; $this->assertSame("123,456", $this->formatter->asDecimal($value)); $value = '-123456.123'; - $this->assertSame("-123,456.123", $this->formatter->asDecimal($value)); + if (defined('HHVM_VERSION')) { // the default format is different on HHVM + $this->assertSame("-123,456", $this->formatter->asDecimal($value)); + } else { + $this->assertSame("-123,456.123", $this->formatter->asDecimal($value)); + } $this->assertSame($this->formatter->nullDisplay, $this->formatter->asDecimal(null)); } public function testAsPercent() { + if (defined('HHVM_VERSION')) { // the default format is different on HHVM + $this->markTestSkipped('HHVM behaves quite different in the default patterns used for formatting.'); + } $value = '123'; $this->assertSame('12,300%', $this->formatter->asPercent($value)); $value = '0.1234'; @@ -64,6 +71,9 @@ class FormatterTest extends TestCase public function testAsScientific() { + if (defined('HHVM_VERSION')) { // the default format is different on HHVM + $this->markTestSkipped('HHVM behaves quite different in the default patterns used for formatting.'); + } $value = '123'; $this->assertSame('1.23E2', $this->formatter->asScientific($value)); $value = '123456'; diff --git a/tests/unit/framework/mail/BaseMailerTest.php b/tests/unit/framework/mail/BaseMailerTest.php index f54cc45cd7..bcb5b57e8c 100644 --- a/tests/unit/framework/mail/BaseMailerTest.php +++ b/tests/unit/framework/mail/BaseMailerTest.php @@ -384,6 +384,10 @@ class Message extends BaseMessage public function toString() { - return var_export($this, true); + $mailer = $this->mailer; + $this->mailer = null; + $s = var_export($this, true); + $this->mailer = $mailer; + return $s; } } diff --git a/tests/unit/framework/rbac/PhpManagerTest.php b/tests/unit/framework/rbac/PhpManagerTest.php index adc4ac9680..7e2214c2e4 100644 --- a/tests/unit/framework/rbac/PhpManagerTest.php +++ b/tests/unit/framework/rbac/PhpManagerTest.php @@ -72,6 +72,11 @@ class PhpManagerTest extends ManagerTestCase static::$filemtime = null; static::$time = null; parent::setUp(); + + if (defined('HHVM_VERSION')) { + $this->markTestSkipped('PhpManager is not compatible with HHVM.'); + } + $this->mockApplication(); $this->removeDataFiles(); $this->auth = $this->createManager(); diff --git a/tests/unit/runtime/.gitignore b/tests/unit/runtime/.gitignore index d6b7ef32c8..5e31724df5 100644 --- a/tests/unit/runtime/.gitignore +++ b/tests/unit/runtime/.gitignore @@ -1,2 +1,3 @@ * !.gitignore +!/coveralls/.gitkeep