From 3ed7b62233ffdf5eb1905067c7e10ab3f1c15744 Mon Sep 17 00:00:00 2001 From: FrediL Date: Sun, 5 May 2013 06:36:48 +0300 Subject: [PATCH 01/14] Use Html::getInputName instead ActiveForm::getInputName --- framework/web/UploadedFile.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/web/UploadedFile.php b/framework/web/UploadedFile.php index c67281c..6e685a3 100644 --- a/framework/web/UploadedFile.php +++ b/framework/web/UploadedFile.php @@ -7,7 +7,7 @@ namespace yii\web; -use yii\widgets\ActiveForm; +use yii\widgets\Html; /** * @author Qiang Xue @@ -66,7 +66,7 @@ class UploadedFile extends \yii\base\Object */ public static function getInstance($model, $attribute) { - $name = ActiveForm::getInputName($model, $attribute); + $name = Html::getInputName($model, $attribute); return static::getInstanceByName($name); } @@ -80,7 +80,7 @@ class UploadedFile extends \yii\base\Object */ public static function getInstances($model, $attribute) { - $name = ActiveForm::getInputName($model, $attribute); + $name = Html::getInputName($model, $attribute); return static::getInstancesByName($name); } From 64217b855fc411727ac71c341fedac6cf49efa41 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sun, 5 May 2013 12:08:59 +0400 Subject: [PATCH 02/14] migration docs --- docs/guide/migration.md | 316 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 0fe2fb3..bafd293 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -1,3 +1,319 @@ Database Migration ================== +Like source code, the structure of a database is evolving as we develop and maintain +a database-driven application. For example, during development, we may want to +add a new table; or after the application is put into production, we may realize +the need of adding an index on a column. It is important to keep track of these +structural database changes (called **migration**) like we do with our source +code. If the source code and the database are out of sync, it is very likely +the whole system may break. For this reason, Yii provides a database migration +tool that can keep track of database migration history, apply new migrations, +or revert existing ones. + +The following steps show how we can use database migration during development: + +1. Tim creates a new migration (e.g. create a new table) +2. Tim commits the new migration into source control system (e.g. GIT, Mercurial) +3. Doug updates from source control system and receives the new migration +4. Doug applies the migration to his local development database + + +Yii supports database migration via the `yiic migrate` command line tool. This +tool supports creating new migrations, applying/reverting/redoing migrations, and +showing migration history and new migrations. + +Creating Migrations +------------------- + +To create a new migration (e.g. create a news table), we run the following command: + +~~~ +yiic migrate/create +~~~ + +The required `name` parameter specifies a very brief description of the migration +(e.g. `create_news_table`). As we will show in the following, the `name` parameter +is used as part of a PHP class name. Therefore, it should only contain letters, +digits and/or underscore characters. + +~~~ +yiic migrate/create create_news_table +~~~ + +The above command will create under the `protected/migrations` directory a new +file named `m101129_185401_create_news_table.php` which contains the following +initial code: + +~~~ +[php] +class m101129_185401_create_news_table extends \yii\db\Migration +{ + public function up() + { + } + + public function down() + { + echo "m101129_185401_create_news_table cannot be reverted.\n"; + return false; + } +} +~~~ + +Notice that the class name is the same as the file name which is of the pattern +`m_`, where `` refers to the UTC timestamp (in the +format of `yymmdd_hhmmss`) when the migration is created, and `` is taken +from the command's `name` parameter. + +The `up()` method should contain the code implementing the actual database +migration, while the `down()` method may contain the code reverting what is +done in `up()`. + +Sometimes, it is impossible to implement `down()`. For example, if we delete +table rows in `up()`, we will not be able to recover them in `down()`. In this +case, the migration is called irreversible, meaning we cannot roll back to +a previous state of the database. In the above generated code, the `down()` +method returns `false` to indicate that the migration cannot be reverted. + +As an example, let's show the migration about creating a news table. + +~~~ +[php] +class m101129_185401_create_news_table extends \yii\db\Migration +{ + public function up() + { + $this->db->createCommand()->createTable('tbl_news, array( + 'id' => 'pk', + 'title' => 'string NOT NULL', + 'content' => 'text', + ))->execute(); + } + + public function down() + { + $this->db->createCommand()->dropTable('tbl_news')->execute(); + } +} +~~~ + +The base class [\yii\db\Migration] exposes a database connection via `db` +property. You can use it for manipulating data and schema of a database. + +Transactional Migrations +------------------------ + +While performing complex DB migrations, we usually want to make sure that each +migration succeed or fail as a whole so that the database maintains the +consistency and integrity. In order to achieve this goal, we can exploit +DB transactions. + +We could explicitly start a DB transaction and enclose the rest of the DB-related +code within the transaction, like the following: + +~~~ +[php] +class m101129_185401_create_news_table extends \yii\db\Migration +{ + public function up() + { + $transaction=$this->getDbConnection()->beginTransaction(); + try + { + $this->db->createCommand()->createTable('tbl_news, array( + 'id' => 'pk', + 'title' => 'string NOT NULL', + 'content' => 'text', + ))->execute(); + $transaction->commit(); + } + catch(Exception $e) + { + echo "Exception: ".$e->getMessage()."\n"; + $transaction->rollback(); + return false; + } + } + + // ...similar code for down() +} +~~~ + +> Note: Not all DBMS support transactions. And some DB queries cannot be put +> into a transaction. In this case, you will have to implement `up()` and +> `down()`, instead. And for MySQL, some SQL statements may cause +> [implicit commit](http://dev.mysql.com/doc/refman/5.1/en/implicit-commit.html). + + +Applying Migrations +------------------- + +To apply all available new migrations (i.e., make the local database up-to-date), +run the following command: + +~~~ +yiic migrate +~~~ + +The command will show the list of all new migrations. If you confirm to apply +the migrations, it will run the `up()` method in every new migration class, one +after another, in the order of the timestamp value in the class name. + +After applying a migration, the migration tool will keep a record in a database +table named `tbl_migration`. This allows the tool to identify which migrations +have been applied and which are not. If the `tbl_migration` table does not exist, +the tool will automatically create it in the database specified by the `db` +application component. + +Sometimes, we may only want to apply one or a few new migrations. We can use the +following command: + +~~~ +yiic migrate/up 3 +~~~ + +This command will apply the 3 new migrations. Changing the value 3 will allow +us to change the number of migrations to be applied. + +We can also migrate the database to a specific version with the following command: + +~~~ +yiic migrate/to 101129_185401 +~~~ + +That is, we use the timestamp part of a migration name to specify the version +that we want to migrate the database to. If there are multiple migrations between +the last applied migration and the specified migration, all these migrations +will be applied. If the specified migration has been applied before, then all +migrations applied after it will be reverted (to be described in the next section). + + +Reverting Migrations +-------------------- + +To revert the last one or several applied migrations, we can use the following +command: + +~~~ +yiic migrate/down [step] +~~~ + +where the optional `step` parameter specifies how many migrations to be reverted +back. It defaults to 1, meaning reverting back the last applied migration. + +As we described before, not all migrations can be reverted. Trying to revert +such migrations will throw an exception and stop the whole reverting process. + + +Redoing Migrations +------------------ + +Redoing migrations means first reverting and then applying the specified migrations. +This can be done with the following command: + +~~~ +yiic migrate/redo [step] +~~~ + +where the optional `step` parameter specifies how many migrations to be redone. +It defaults to 1, meaning redoing the last migration. + + +Showing Migration Information +----------------------------- + +Besides applying and reverting migrations, the migration tool can also display +the migration history and the new migrations to be applied. + +~~~ +yiic migrate/history [limit] +yiic migrate/new [limit] +~~~ + +where the optional parameter `limit` specifies the number of migrations to be +displayed. If `limit` is not specified, all available migrations will be displayed. + +The first command shows the migrations that have been applied, while the second +command shows the migrations that have not been applied. + + +Modifying Migration History +--------------------------- + +Sometimes, we may want to modify the migration history to a specific migration +version without actually applying or reverting the relevant migrations. This +often happens when developing a new migration. We can use the following command +to achieve this goal. + +~~~ +yiic migrate/mark 101129_185401 +~~~ + +This command is very similar to `yiic migrate/to` command, except that it only +modifies the migration history table to the specified version without applying +or reverting the migrations. + + +Customizing Migration Command +----------------------------- + +There are several ways to customize the migration command. + +### Use Command Line Options + +The migration command comes with four options that can be specified in command +line: + +* `interactive`: boolean, specifies whether to perform migrations in an + interactive mode. Defaults to true, meaning the user will be prompted when + performing a specific migration. You may set this to false should the + migrations be done in a background process. + +* `migrationPath`: string, specifies the directory storing all migration class + files. This must be specified in terms of a path alias, and the corresponding + directory must exist. If not specified, it will use the `migrations` + sub-directory under the application base path. + +* `migrationTable`: string, specifies the name of the database table for storing + migration history information. It defaults to `tbl_migration`. The table + structure is `version varchar(255) primary key, apply_time integer`. + +* `connectionID`: string, specifies the ID of the database application component. + Defaults to 'db'. + +* `templateFile`: string, specifies the path of the file to be served as the code + template for generating the migration classes. This must be specified in terms + of a path alias (e.g. `application.migrations.template`). If not set, an + internal template will be used. Inside the template, the token `{ClassName}` + will be replaced with the actual migration class name. + +To specify these options, execute the migrate command using the following format + +~~~ +yiic migrate/up --option1=value1 --option2=value2 ... +~~~ + +For example, if we want to migrate for a `forum` module whose migration files +are located within the module's `migrations` directory, we can use the following +command: + +~~~ +yiic migrate/up --migrationPath=ext.forum.migrations +~~~ + + +### Configure Command Globally + +While command line options allow us to configure the migration command +on-the-fly, sometimes we may want to configure the command once for all. +For example, we may want to use a different table to store the migration history, +or we may want to use a customized migration template. We can do so by modifying +the console application's configuration file like the following, + +```php +TBD +``` + +Now if we run the `migrate` command, the above configurations will take effect +without requiring us to enter the command line options every time. From aa3fe610a8c9f1cb53f2442ee7f35eddd1564511 Mon Sep 17 00:00:00 2001 From: Vladimir Vyachin Date: Sun, 5 May 2013 17:03:54 +0400 Subject: [PATCH 03/14] Fix log messages collection --- framework/logging/Target.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/logging/Target.php b/framework/logging/Target.php index e76e8ac..311334d 100644 --- a/framework/logging/Target.php +++ b/framework/logging/Target.php @@ -89,7 +89,7 @@ abstract class Target extends \yii\base\Component */ public function collect($messages, $final) { - $this->_messages = array($this->_messages, $this->filterMessages($messages)); + $this->_messages = array_merge($this->_messages, $this->filterMessages($messages)); $count = count($this->_messages); if ($count > 0 && ($final || $this->exportInterval > 0 && $count >= $this->exportInterval)) { if (($context = $this->getContextMessage()) !== '') { From af72a948f6f965f4a4623e34f347abeb19da4db4 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 5 May 2013 09:07:51 -0400 Subject: [PATCH 04/14] Fixes issue #107: UrlManager::showScriptName default to false. --- framework/web/UrlManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/web/UrlManager.php b/framework/web/UrlManager.php index 318f329..329bf07 100644 --- a/framework/web/UrlManager.php +++ b/framework/web/UrlManager.php @@ -51,7 +51,7 @@ class UrlManager extends Component * @var boolean whether to show entry script name in the constructed URL. Defaults to true. * This property is used only if [[enablePrettyUrl]] is true. */ - public $showScriptName = true; + public $showScriptName = false; /** * @var string the GET variable name for route. This property is used only if [[enablePrettyUrl]] is false. */ From c9895eff82d59695eeba6d9083c56c954a915a51 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 5 May 2013 10:06:40 -0400 Subject: [PATCH 05/14] Fixes issue #110. --- framework/base/View.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/base/View.php b/framework/base/View.php index a72982e..115bfad 100644 --- a/framework/base/View.php +++ b/framework/base/View.php @@ -744,10 +744,10 @@ class View extends Component { $lines = array(); if (!empty($this->metaTags)) { - $lines[] = implode("\n", $this->cssFiles); + $lines[] = implode("\n", $this->metaTags); } if (!empty($this->linkTags)) { - $lines[] = implode("\n", $this->cssFiles); + $lines[] = implode("\n", $this->linkTags); } if (!empty($this->cssFiles)) { $lines[] = implode("\n", $this->cssFiles); From c91a0f4b26ac14d75b98845eec7575a3d3b0eb57 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 5 May 2013 10:14:55 -0400 Subject: [PATCH 06/14] Fixes issue #105: route var appears twice in the created URL --- framework/web/UrlManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/web/UrlManager.php b/framework/web/UrlManager.php index 329bf07..a300033 100644 --- a/framework/web/UrlManager.php +++ b/framework/web/UrlManager.php @@ -174,7 +174,7 @@ class UrlManager extends Component public function createUrl($route, $params = array()) { $anchor = isset($params['#']) ? '#' . $params['#'] : ''; - unset($params['#']); + unset($params['#'], $params[$this->routeVar]); $route = trim($route, '/'); $baseUrl = $this->getBaseUrl(); From b6cee8af881305557a3657893ec7c0db406055d7 Mon Sep 17 00:00:00 2001 From: Vladimir Vyachin Date: Sun, 5 May 2013 18:21:10 +0400 Subject: [PATCH 07/14] fix assetconverter file extensions change only first time --- framework/web/AssetConverter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/web/AssetConverter.php b/framework/web/AssetConverter.php index 8340be5..f2871fe 100644 --- a/framework/web/AssetConverter.php +++ b/framework/web/AssetConverter.php @@ -53,8 +53,8 @@ class AssetConverter extends Component implements IAssetConverter )); exec($command, $output); Yii::info("Converted $asset into $result: " . implode("\n", $output), __METHOD__); - return "$baseUrl/$result"; } + return "$baseUrl/$result"; } } return "$baseUrl/$asset"; From 3c83b8ed7cb0442fc88e66a63d9764d4d31b2bcf Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Sun, 5 May 2013 07:31:09 -0700 Subject: [PATCH 08/14] Fix typos A couple of obvious typos here --- framework/validators/FileValidator.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/validators/FileValidator.php b/framework/validators/FileValidator.php index 0fddcf5..ebe6cad 100644 --- a/framework/validators/FileValidator.php +++ b/framework/validators/FileValidator.php @@ -192,11 +192,11 @@ class FileValidator extends Validator break; case UPLOAD_ERR_CANT_WRITE: $this->addError($object, $attribute, $this->message); - Yii::warning('Failed to write the uploaded file to disk: ', $file->getName(), __METHOD__); + Yii::warning('Failed to write the uploaded file to disk: ' . $file->getName(), __METHOD__); break; case UPLOAD_ERR_EXTENSION: $this->addError($object, $attribute, $this->message); - Yii::warning('File upload was stopped by some PHP extension: ', $file->getName(), __METHOD__); + Yii::warning('File upload was stopped by some PHP extension: ' . $file->getName(), __METHOD__); break; default: break; @@ -248,4 +248,4 @@ class FileValidator extends Validator return (int)$sizeStr; } } -} \ No newline at end of file +} From 7f5cbce69cc702633691836a20ecb7f44589e847 Mon Sep 17 00:00:00 2001 From: Vladimir Vyachin Date: Sun, 5 May 2013 18:46:54 +0400 Subject: [PATCH 09/14] fix SecurityHelper description --- framework/helpers/base/SecurityHelper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/helpers/base/SecurityHelper.php b/framework/helpers/base/SecurityHelper.php index ed5bfd6..d220bf4 100644 --- a/framework/helpers/base/SecurityHelper.php +++ b/framework/helpers/base/SecurityHelper.php @@ -167,11 +167,11 @@ class SecurityHelper * * ~~~ * // generates the hash (usually done during user registration or when the password is changed) - * $hash = SecurityHelper::hashPassword($password); + * $hash = SecurityHelper::generatePasswordHash($password); * // ...save $hash in database... * * // during login, validate if the password entered is correct using $hash fetched from database - * if (PasswordHelper::verifyPassword($password, $hash) { + * if (SecurityHelper::verifyPassword($password, $hash) { * // password is good * } else { * // password is bad From 802c0c94a81d89ea3409dc62ef08a3ec7967fd44 Mon Sep 17 00:00:00 2001 From: Rinat Silnov Date: Sun, 5 May 2013 19:18:04 +0400 Subject: [PATCH 10/14] Check apc.enable_cli for ApcTestCase unit tests --- tests/unit/framework/caching/ApcCacheTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/framework/caching/ApcCacheTest.php b/tests/unit/framework/caching/ApcCacheTest.php index 74ede2a..604efde 100644 --- a/tests/unit/framework/caching/ApcCacheTest.php +++ b/tests/unit/framework/caching/ApcCacheTest.php @@ -17,6 +17,8 @@ class ApcCacheTest extends CacheTest { if(!extension_loaded("apc")) { $this->markTestSkipped("APC not installed. Skipping."); + } else if ('cli' === PHP_SAPI && !ini_get('apc.enable_cli')) { + $this->markTestSkipped("APC cli is not enabled. Skipping."); } if($this->_cacheInstance === null) { From 47c643fbff9ebfc28a5760789c719278a8ccfc2d Mon Sep 17 00:00:00 2001 From: Rinat Silnov Date: Sun, 5 May 2013 19:25:36 +0400 Subject: [PATCH 11/14] Call static::dumpAsString in VarDumper::dump This way we can extend VarDumper::dumpAsString --- framework/helpers/base/VarDumper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/helpers/base/VarDumper.php b/framework/helpers/base/VarDumper.php index 43b0cd8..5268568 100644 --- a/framework/helpers/base/VarDumper.php +++ b/framework/helpers/base/VarDumper.php @@ -39,7 +39,7 @@ class VarDumper */ public static function dump($var, $depth = 10, $highlight = false) { - echo self::dumpAsString($var, $depth, $highlight); + echo static::dumpAsString($var, $depth, $highlight); } /** From 4be9e195c2d572c318a0e68c90765b0ceb823fd0 Mon Sep 17 00:00:00 2001 From: Zander Baldwin Date: Sun, 5 May 2013 17:04:55 +0100 Subject: [PATCH 12/14] Add Newlines Appended newlines to every PHP document that did not have a newline as the last character in the file. --- app/protected/config/assets.php | 2 +- app/protected/config/main.php | 2 +- app/protected/controllers/SiteController.php | 2 +- app/protected/models/ContactForm.php | 2 +- app/protected/models/LoginForm.php | 2 +- app/protected/models/User.php | 2 +- app/protected/views/layouts/main.php | 2 +- app/protected/views/site/contact.php | 2 +- app/protected/views/site/login.php | 2 +- framework/assets.php | 2 +- framework/base/ActionFilter.php | 2 +- framework/base/Exception.php | 2 +- framework/base/View.php | 2 +- framework/base/ViewEvent.php | 2 +- framework/base/Widget.php | 2 +- framework/caching/Cache.php | 2 +- framework/caching/Dependency.php | 2 +- framework/caching/MemCacheServer.php | 2 +- framework/caching/WinCache.php | 2 +- framework/console/Controller.php | 2 +- framework/console/controllers/AppController.php | 2 +- framework/console/controllers/AssetController.php | 2 +- framework/console/controllers/HelpController.php | 2 +- framework/console/webapp/config.php | 2 +- framework/console/webapp/default/index.php | 2 +- framework/console/webapp/default/protected/config/main.php | 2 +- .../console/webapp/default/protected/controllers/SiteController.php | 2 +- framework/console/webapp/default/protected/views/layouts/main.php | 2 +- framework/console/webapp/default/protected/views/site/index.php | 2 +- framework/db/Exception.php | 2 +- framework/db/Expression.php | 2 +- framework/db/Migration.php | 2 +- framework/db/StaleObjectException.php | 2 +- framework/helpers/ArrayHelper.php | 2 +- framework/helpers/FileHelper.php | 2 +- framework/helpers/JsExpression.php | 2 +- framework/helpers/Json.php | 2 +- framework/helpers/SecurityHelper.php | 2 +- framework/helpers/VarDumper.php | 2 +- framework/helpers/base/ArrayHelper.php | 2 +- framework/helpers/base/FileHelper.php | 2 +- framework/helpers/base/Json.php | 2 +- framework/helpers/base/VarDumper.php | 2 +- framework/i18n/PhpMessageSource.php | 2 +- framework/i18n/data/plurals.php | 2 +- framework/logging/EmailTarget.php | 2 +- framework/logging/ProfileTarget.php | 2 +- framework/logging/WebTarget.php | 2 +- framework/renderers/SmartyViewRenderer.php | 2 +- framework/validators/InlineValidator.php | 2 +- framework/validators/NumberValidator.php | 2 +- framework/validators/UniqueValidator.php | 2 +- framework/views/error.php | 2 +- framework/web/AccessControl.php | 2 +- framework/web/AccessRule.php | 2 +- framework/web/AssetBundle.php | 2 +- framework/web/AssetConverter.php | 2 +- framework/web/Controller.php | 2 +- framework/web/HttpCache.php | 2 +- framework/web/IAssetConverter.php | 2 +- framework/web/Identity.php | 2 +- framework/web/PageCache.php | 2 +- framework/web/Pagination.php | 2 +- framework/web/Sort.php | 2 +- framework/web/UserEvent.php | 2 +- framework/widgets/ActiveField.php | 2 +- framework/widgets/Block.php | 2 +- framework/widgets/FragmentCache.php | 2 +- tests/unit/MysqlTestCase.php | 2 +- tests/unit/TestCase.php | 2 +- tests/unit/data/ar/ActiveRecord.php | 2 +- tests/unit/data/ar/Customer.php | 2 +- tests/unit/data/ar/Item.php | 2 +- tests/unit/data/ar/Order.php | 2 +- tests/unit/data/ar/OrderItem.php | 2 +- tests/unit/data/base/Singer.php | 2 +- tests/unit/framework/base/ComponentTest.php | 2 +- tests/unit/framework/base/ObjectTest.php | 2 +- tests/unit/framework/caching/ApcCacheTest.php | 2 +- tests/unit/framework/caching/DbCacheTest.php | 2 +- tests/unit/framework/caching/FileCacheTest.php | 2 +- tests/unit/framework/caching/MemCacheTest.php | 2 +- tests/unit/framework/caching/MemCachedTest.php | 2 +- tests/unit/framework/caching/WinCacheTest.php | 2 +- tests/unit/framework/caching/XCacheTest.php | 2 +- tests/unit/framework/caching/ZendDataCacheTest.php | 2 +- tests/unit/framework/db/ActiveRecordTest.php | 2 +- tests/unit/framework/db/CommandTest.php | 2 +- tests/unit/framework/db/QueryTest.php | 2 +- tests/unit/framework/helpers/JsonTest.php | 2 +- tests/unit/framework/helpers/StringHelperTest.php | 2 +- tests/unit/framework/helpers/VarDumperTest.php | 2 +- tests/unit/framework/validators/EmailValidatorTest.php | 2 +- tests/web/app/protected/config/main.php | 2 +- tests/web/app/protected/controllers/SiteController.php | 2 +- tests/web/app/protected/views/site/index.php | 2 +- 96 files changed, 96 insertions(+), 96 deletions(-) diff --git a/app/protected/config/assets.php b/app/protected/config/assets.php index 6602a6e..a3ba847 100644 --- a/app/protected/config/assets.php +++ b/app/protected/config/assets.php @@ -16,4 +16,4 @@ return array( 'yii', ), ), -); \ No newline at end of file +); diff --git a/app/protected/config/main.php b/app/protected/config/main.php index b982506..96e0986 100644 --- a/app/protected/config/main.php +++ b/app/protected/config/main.php @@ -18,4 +18,4 @@ return array( 'params' => array( 'adminEmail' => 'admin@example.com', ), -); \ No newline at end of file +); diff --git a/app/protected/controllers/SiteController.php b/app/protected/controllers/SiteController.php index 7e6bb15..d1186f6 100644 --- a/app/protected/controllers/SiteController.php +++ b/app/protected/controllers/SiteController.php @@ -46,4 +46,4 @@ class SiteController extends Controller { echo $this->render('about'); } -} \ No newline at end of file +} diff --git a/app/protected/models/ContactForm.php b/app/protected/models/ContactForm.php index 8e8f831..5124b2c 100644 --- a/app/protected/models/ContactForm.php +++ b/app/protected/models/ContactForm.php @@ -60,4 +60,4 @@ class ContactForm extends Model return false; } } -} \ No newline at end of file +} diff --git a/app/protected/models/LoginForm.php b/app/protected/models/LoginForm.php index 23e8c92..5ba1dc6 100644 --- a/app/protected/models/LoginForm.php +++ b/app/protected/models/LoginForm.php @@ -55,4 +55,4 @@ class LoginForm extends Model return false; } } -} \ No newline at end of file +} diff --git a/app/protected/models/User.php b/app/protected/models/User.php index fcbf14a..afbf9f8 100644 --- a/app/protected/models/User.php +++ b/app/protected/models/User.php @@ -58,4 +58,4 @@ class User extends \yii\base\Object implements \yii\web\Identity { return $this->password === $password; } -} \ No newline at end of file +} diff --git a/app/protected/views/layouts/main.php b/app/protected/views/layouts/main.php index a455f20..8fb915a 100644 --- a/app/protected/views/layouts/main.php +++ b/app/protected/views/layouts/main.php @@ -54,4 +54,4 @@ $this->registerAssetBundle('app'); -endPage(); ?> \ No newline at end of file +endPage(); ?> diff --git a/app/protected/views/site/contact.php b/app/protected/views/site/contact.php index 246570d..4ca40f1 100644 --- a/app/protected/views/site/contact.php +++ b/app/protected/views/site/contact.php @@ -30,4 +30,4 @@ $this->title = 'Contact';
'btn btn-primary')); ?>
-endWidget(); ?> \ No newline at end of file +endWidget(); ?> diff --git a/app/protected/views/site/login.php b/app/protected/views/site/login.php index 5608ffb..8672eeb 100644 --- a/app/protected/views/site/login.php +++ b/app/protected/views/site/login.php @@ -18,4 +18,4 @@ $this->title = 'Login';
'btn btn-primary')); ?>
-endWidget(); ?> \ No newline at end of file +endWidget(); ?> diff --git a/framework/assets.php b/framework/assets.php index 5cea992..919011b 100644 --- a/framework/assets.php +++ b/framework/assets.php @@ -28,4 +28,4 @@ return array( ), 'depends' => array('yii', 'yii/validation'), ), -); \ No newline at end of file +); diff --git a/framework/base/ActionFilter.php b/framework/base/ActionFilter.php index 1f82e5d..d69c0fe 100644 --- a/framework/base/ActionFilter.php +++ b/framework/base/ActionFilter.php @@ -87,4 +87,4 @@ class ActionFilter extends Behavior { return !in_array($action->id, $this->except, true) && (empty($this->only) || in_array($action->id, $this->only, true)); } -} \ No newline at end of file +} diff --git a/framework/base/Exception.php b/framework/base/Exception.php index 9ee698b..7d26bd0 100644 --- a/framework/base/Exception.php +++ b/framework/base/Exception.php @@ -22,4 +22,4 @@ class Exception extends \Exception { return \Yii::t('yii|Exception'); } -} \ No newline at end of file +} diff --git a/framework/base/View.php b/framework/base/View.php index 115bfad..4718d90 100644 --- a/framework/base/View.php +++ b/framework/base/View.php @@ -797,4 +797,4 @@ class View extends Component } return implode("\n", $lines); } -} \ No newline at end of file +} diff --git a/framework/base/ViewEvent.php b/framework/base/ViewEvent.php index cac7be4..f1ee7b9 100644 --- a/framework/base/ViewEvent.php +++ b/framework/base/ViewEvent.php @@ -41,4 +41,4 @@ class ViewEvent extends Event $this->viewFile = $viewFile; parent::__construct($config); } -} \ No newline at end of file +} diff --git a/framework/base/Widget.php b/framework/base/Widget.php index 1aabd4f..c0c524f 100644 --- a/framework/base/Widget.php +++ b/framework/base/Widget.php @@ -134,4 +134,4 @@ class Widget extends Component return pathinfo($file, PATHINFO_EXTENSION) === '' ? $file . '.php' : $file; } -} \ No newline at end of file +} diff --git a/framework/caching/Cache.php b/framework/caching/Cache.php index fb56d5e..78f2854 100644 --- a/framework/caching/Cache.php +++ b/framework/caching/Cache.php @@ -349,4 +349,4 @@ abstract class Cache extends Component implements \ArrayAccess { $this->delete($key); } -} \ No newline at end of file +} diff --git a/framework/caching/Dependency.php b/framework/caching/Dependency.php index feb8c07..d1428fc 100644 --- a/framework/caching/Dependency.php +++ b/framework/caching/Dependency.php @@ -49,4 +49,4 @@ abstract class Dependency extends \yii\base\Object * @return mixed the data needed to determine if dependency has been changed. */ abstract protected function generateDependencyData(); -} \ No newline at end of file +} diff --git a/framework/caching/MemCacheServer.php b/framework/caching/MemCacheServer.php index 105137e..dc0de08 100644 --- a/framework/caching/MemCacheServer.php +++ b/framework/caching/MemCacheServer.php @@ -46,4 +46,4 @@ class MemCacheServer extends \yii\base\Object * @var boolean if the server should be flagged as online upon a failure. This is used by memcache only. */ public $status = true; -} \ No newline at end of file +} diff --git a/framework/caching/WinCache.php b/framework/caching/WinCache.php index ee6b4a9..4e07c7f 100644 --- a/framework/caching/WinCache.php +++ b/framework/caching/WinCache.php @@ -89,4 +89,4 @@ class WinCache extends Cache { return wincache_ucache_clear(); } -} \ No newline at end of file +} diff --git a/framework/console/Controller.php b/framework/console/Controller.php index c7c5642..2eaf4b8 100644 --- a/framework/console/Controller.php +++ b/framework/console/Controller.php @@ -147,4 +147,4 @@ class Controller extends \yii\base\Controller { return array(); } -} \ No newline at end of file +} diff --git a/framework/console/controllers/AppController.php b/framework/console/controllers/AppController.php index a47acfe..17f7420 100644 --- a/framework/console/controllers/AppController.php +++ b/framework/console/controllers/AppController.php @@ -321,4 +321,4 @@ class AppController extends Controller closedir($handle); return $list; } -} \ No newline at end of file +} diff --git a/framework/console/controllers/AssetController.php b/framework/console/controllers/AssetController.php index 71a2cae..aab489b 100644 --- a/framework/console/controllers/AssetController.php +++ b/framework/console/controllers/AssetController.php @@ -350,4 +350,4 @@ return array( EOD; file_put_contents($configFile, $template); } -} \ No newline at end of file +} diff --git a/framework/console/controllers/HelpController.php b/framework/console/controllers/HelpController.php index 74c354b..82bd6fe 100644 --- a/framework/console/controllers/HelpController.php +++ b/framework/console/controllers/HelpController.php @@ -418,4 +418,4 @@ class HelpController extends Controller $name = $required ? "$name (required)" : $name; return $doc === '' ? $name : "$name: $doc"; } -} \ No newline at end of file +} diff --git a/framework/console/webapp/config.php b/framework/console/webapp/config.php index 112fb18..47ddcc1 100644 --- a/framework/console/webapp/config.php +++ b/framework/console/webapp/config.php @@ -14,4 +14,4 @@ return array( 'permissions' => 0755, ), ), -); \ No newline at end of file +); diff --git a/framework/console/webapp/default/index.php b/framework/console/webapp/default/index.php index b84e257..2aa3580 100644 --- a/framework/console/webapp/default/index.php +++ b/framework/console/webapp/default/index.php @@ -7,4 +7,4 @@ $config = require dirname(__DIR__).'/protected/config/main.php'; $config['basePath'] = dirname(__DIR__).'/protected'; $app = new \yii\web\Application($config); -$app->run(); \ No newline at end of file +$app->run(); diff --git a/framework/console/webapp/default/protected/config/main.php b/framework/console/webapp/default/protected/config/main.php index 795811e..5817783 100644 --- a/framework/console/webapp/default/protected/config/main.php +++ b/framework/console/webapp/default/protected/config/main.php @@ -17,4 +17,4 @@ return array( 'class' => 'yii\caching\DummyCache', ), ), -); \ No newline at end of file +); diff --git a/framework/console/webapp/default/protected/controllers/SiteController.php b/framework/console/webapp/default/protected/controllers/SiteController.php index b47b93c..ac8c1dd 100644 --- a/framework/console/webapp/default/protected/controllers/SiteController.php +++ b/framework/console/webapp/default/protected/controllers/SiteController.php @@ -12,4 +12,4 @@ class SiteController extends Controller 'name' => 'Qiang', )); } -} \ No newline at end of file +} diff --git a/framework/console/webapp/default/protected/views/layouts/main.php b/framework/console/webapp/default/protected/views/layouts/main.php index 5c883e6..9837038 100644 --- a/framework/console/webapp/default/protected/views/layouts/main.php +++ b/framework/console/webapp/default/protected/views/layouts/main.php @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/framework/console/webapp/default/protected/views/site/index.php b/framework/console/webapp/default/protected/views/site/index.php index 0fb8784..08c5288 100644 --- a/framework/console/webapp/default/protected/views/site/index.php +++ b/framework/console/webapp/default/protected/views/site/index.php @@ -1 +1 @@ -Hello, ! \ No newline at end of file +Hello, ! diff --git a/framework/db/Exception.php b/framework/db/Exception.php index ad97b5a..b7a60b4 100644 --- a/framework/db/Exception.php +++ b/framework/db/Exception.php @@ -41,4 +41,4 @@ class Exception extends \yii\base\Exception { return \Yii::t('yii|Database Exception'); } -} \ No newline at end of file +} diff --git a/framework/db/Expression.php b/framework/db/Expression.php index 4ebcd5f..77e9f60 100644 --- a/framework/db/Expression.php +++ b/framework/db/Expression.php @@ -57,4 +57,4 @@ class Expression extends \yii\base\Object { return $this->expression; } -} \ No newline at end of file +} diff --git a/framework/db/Migration.php b/framework/db/Migration.php index ce2cf97..88abab5 100644 --- a/framework/db/Migration.php +++ b/framework/db/Migration.php @@ -368,4 +368,4 @@ class Migration extends \yii\base\Component $this->db->createCommand()->dropIndex($name, $table)->execute(); echo " done (time: " . sprintf('%.3f', microtime(true) - $time) . "s)\n"; } -} \ No newline at end of file +} diff --git a/framework/db/StaleObjectException.php b/framework/db/StaleObjectException.php index 860c9fc..0a04bd3 100644 --- a/framework/db/StaleObjectException.php +++ b/framework/db/StaleObjectException.php @@ -20,4 +20,4 @@ class StaleObjectException extends Exception { return \Yii::t('yii|Stale Object Exception'); } -} \ No newline at end of file +} diff --git a/framework/helpers/ArrayHelper.php b/framework/helpers/ArrayHelper.php index 3061717..d58341c 100644 --- a/framework/helpers/ArrayHelper.php +++ b/framework/helpers/ArrayHelper.php @@ -16,4 +16,4 @@ namespace yii\helpers; */ class ArrayHelper extends base\ArrayHelper { -} \ No newline at end of file +} diff --git a/framework/helpers/FileHelper.php b/framework/helpers/FileHelper.php index 3fb24e1..04ce4e1 100644 --- a/framework/helpers/FileHelper.php +++ b/framework/helpers/FileHelper.php @@ -18,4 +18,4 @@ namespace yii\helpers; */ class FileHelper extends base\FileHelper { -} \ No newline at end of file +} diff --git a/framework/helpers/JsExpression.php b/framework/helpers/JsExpression.php index 0054b64..5a1f9bd 100644 --- a/framework/helpers/JsExpression.php +++ b/framework/helpers/JsExpression.php @@ -42,4 +42,4 @@ class JsExpression extends Object { return $this->expression; } -} \ No newline at end of file +} diff --git a/framework/helpers/Json.php b/framework/helpers/Json.php index 2a20f3c..5e77c3f 100644 --- a/framework/helpers/Json.php +++ b/framework/helpers/Json.php @@ -15,4 +15,4 @@ namespace yii\helpers; class Json extends base\Json { -} \ No newline at end of file +} diff --git a/framework/helpers/SecurityHelper.php b/framework/helpers/SecurityHelper.php index d3cb2ad..d16e7e6 100644 --- a/framework/helpers/SecurityHelper.php +++ b/framework/helpers/SecurityHelper.php @@ -26,4 +26,4 @@ namespace yii\helpers; */ class SecurityHelper extends base\SecurityHelper { -} \ No newline at end of file +} diff --git a/framework/helpers/VarDumper.php b/framework/helpers/VarDumper.php index 2659188..59a1718 100644 --- a/framework/helpers/VarDumper.php +++ b/framework/helpers/VarDumper.php @@ -25,4 +25,4 @@ namespace yii\helpers; */ class VarDumper extends base\VarDumper { -} \ No newline at end of file +} diff --git a/framework/helpers/base/ArrayHelper.php b/framework/helpers/base/ArrayHelper.php index 5f72fe4..86445d7 100644 --- a/framework/helpers/base/ArrayHelper.php +++ b/framework/helpers/base/ArrayHelper.php @@ -349,4 +349,4 @@ class ArrayHelper } return $d; } -} \ No newline at end of file +} diff --git a/framework/helpers/base/FileHelper.php b/framework/helpers/base/FileHelper.php index 2f62f43..954c86e 100644 --- a/framework/helpers/base/FileHelper.php +++ b/framework/helpers/base/FileHelper.php @@ -169,4 +169,4 @@ class FileHelper } closedir($handle); } -} \ No newline at end of file +} diff --git a/framework/helpers/base/Json.php b/framework/helpers/base/Json.php index 1deb5c2..c92e208 100644 --- a/framework/helpers/base/Json.php +++ b/framework/helpers/base/Json.php @@ -104,4 +104,4 @@ class Json return $data; } } -} \ No newline at end of file +} diff --git a/framework/helpers/base/VarDumper.php b/framework/helpers/base/VarDumper.php index 5268568..730aafe 100644 --- a/framework/helpers/base/VarDumper.php +++ b/framework/helpers/base/VarDumper.php @@ -131,4 +131,4 @@ class VarDumper break; } } -} \ No newline at end of file +} diff --git a/framework/i18n/PhpMessageSource.php b/framework/i18n/PhpMessageSource.php index 1ada44a..f62939f 100644 --- a/framework/i18n/PhpMessageSource.php +++ b/framework/i18n/PhpMessageSource.php @@ -76,4 +76,4 @@ class PhpMessageSource extends MessageSource return array(); } } -} \ No newline at end of file +} diff --git a/framework/i18n/data/plurals.php b/framework/i18n/data/plurals.php index 52c733b..468f7e2 100644 --- a/framework/i18n/data/plurals.php +++ b/framework/i18n/data/plurals.php @@ -624,4 +624,4 @@ return array ( array ( 0 => 'in_array(fmod($n,10),array(1,2))||fmod($n,20)==0', ), -); \ No newline at end of file +); diff --git a/framework/logging/EmailTarget.php b/framework/logging/EmailTarget.php index 4c84739..bb02e34 100644 --- a/framework/logging/EmailTarget.php +++ b/framework/logging/EmailTarget.php @@ -69,4 +69,4 @@ class EmailTarget extends Target } mail($sentTo, $subject, $body, implode("\r\n", $headers)); } -} \ No newline at end of file +} diff --git a/framework/logging/ProfileTarget.php b/framework/logging/ProfileTarget.php index 2b6ffe6..335e172 100644 --- a/framework/logging/ProfileTarget.php +++ b/framework/logging/ProfileTarget.php @@ -189,4 +189,4 @@ class CProfileLogRoute extends CWebLogRoute $total += $delta; return array($token, $calls, $min, $max, $total); } -} \ No newline at end of file +} diff --git a/framework/logging/WebTarget.php b/framework/logging/WebTarget.php index b71e1a2..c98fd9f 100644 --- a/framework/logging/WebTarget.php +++ b/framework/logging/WebTarget.php @@ -58,4 +58,4 @@ class CWebLogRoute extends CLogRoute $viewFile = YII_PATH . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . $view . '.php'; include($app->findLocalizedFile($viewFile, 'en')); } -} \ No newline at end of file +} diff --git a/framework/renderers/SmartyViewRenderer.php b/framework/renderers/SmartyViewRenderer.php index 920f3c6..29d7b97 100644 --- a/framework/renderers/SmartyViewRenderer.php +++ b/framework/renderers/SmartyViewRenderer.php @@ -102,4 +102,4 @@ class SmartyViewRenderer extends ViewRenderer return $template->fetch(); } -} \ No newline at end of file +} diff --git a/framework/validators/InlineValidator.php b/framework/validators/InlineValidator.php index 3689a2f..8af5bbc 100644 --- a/framework/validators/InlineValidator.php +++ b/framework/validators/InlineValidator.php @@ -96,4 +96,4 @@ class InlineValidator extends Validator return null; } } -} \ No newline at end of file +} diff --git a/framework/validators/NumberValidator.php b/framework/validators/NumberValidator.php index d0a4002..c0f81cd 100644 --- a/framework/validators/NumberValidator.php +++ b/framework/validators/NumberValidator.php @@ -151,4 +151,4 @@ class NumberValidator extends Validator return 'yii.validation.number(value, messages, ' . Json::encode($options) . ');'; } -} \ No newline at end of file +} diff --git a/framework/validators/UniqueValidator.php b/framework/validators/UniqueValidator.php index 2240e0a..7072ff4 100644 --- a/framework/validators/UniqueValidator.php +++ b/framework/validators/UniqueValidator.php @@ -97,4 +97,4 @@ class UniqueValidator extends Validator $this->addError($object, $attribute, $this->message); } } -} \ No newline at end of file +} diff --git a/framework/views/error.php b/framework/views/error.php index 548d04b..009050a 100644 --- a/framework/views/error.php +++ b/framework/views/error.php @@ -64,4 +64,4 @@ $title = $context->htmlEncode($exception instanceof \yii\base\Exception ? $excep versionInfo : ''?> - \ No newline at end of file + diff --git a/framework/web/AccessControl.php b/framework/web/AccessControl.php index f5983ae..e890510 100644 --- a/framework/web/AccessControl.php +++ b/framework/web/AccessControl.php @@ -103,4 +103,4 @@ class AccessControl extends ActionFilter throw new HttpException(403, Yii::t('yii|You are not allowed to perform this action.')); } } -} \ No newline at end of file +} diff --git a/framework/web/AccessRule.php b/framework/web/AccessRule.php index 3f8c057..b195048 100644 --- a/framework/web/AccessRule.php +++ b/framework/web/AccessRule.php @@ -185,4 +185,4 @@ class AccessRule extends Component { return empty($this->matchCallback) || call_user_func($this->matchCallback, $this, $action); } -} \ No newline at end of file +} diff --git a/framework/web/AssetBundle.php b/framework/web/AssetBundle.php index 4e1eb59..37577dd 100644 --- a/framework/web/AssetBundle.php +++ b/framework/web/AssetBundle.php @@ -173,4 +173,4 @@ class AssetBundle extends Object } } } -} \ No newline at end of file +} diff --git a/framework/web/AssetConverter.php b/framework/web/AssetConverter.php index f2871fe..4fde1fc 100644 --- a/framework/web/AssetConverter.php +++ b/framework/web/AssetConverter.php @@ -59,4 +59,4 @@ class AssetConverter extends Component implements IAssetConverter } return "$baseUrl/$asset"; } -} \ No newline at end of file +} diff --git a/framework/web/Controller.php b/framework/web/Controller.php index 099bf96..517f4b4 100644 --- a/framework/web/Controller.php +++ b/framework/web/Controller.php @@ -40,4 +40,4 @@ class Controller extends \yii\base\Controller } return Yii::$app->getUrlManager()->createUrl($route, $params); } -} \ No newline at end of file +} diff --git a/framework/web/HttpCache.php b/framework/web/HttpCache.php index f64b37f..0a3bb86 100644 --- a/framework/web/HttpCache.php +++ b/framework/web/HttpCache.php @@ -128,4 +128,4 @@ class HttpCache extends ActionFilter { return '"' . base64_encode(sha1($seed, true)) . '"'; } -} \ No newline at end of file +} diff --git a/framework/web/IAssetConverter.php b/framework/web/IAssetConverter.php index 4334d3e..d1d1da0 100644 --- a/framework/web/IAssetConverter.php +++ b/framework/web/IAssetConverter.php @@ -24,4 +24,4 @@ interface IAssetConverter * need conversion, "$baseUrl/$asset" should be returned. */ public function convert($asset, $basePath, $baseUrl); -} \ No newline at end of file +} diff --git a/framework/web/Identity.php b/framework/web/Identity.php index 6d67bc0..101ecdb 100644 --- a/framework/web/Identity.php +++ b/framework/web/Identity.php @@ -78,4 +78,4 @@ interface Identity * @see getAuthKey() */ public function validateAuthKey($authKey); -} \ No newline at end of file +} diff --git a/framework/web/PageCache.php b/framework/web/PageCache.php index 5a50825..2fe36b3 100644 --- a/framework/web/PageCache.php +++ b/framework/web/PageCache.php @@ -101,4 +101,4 @@ class PageCache extends ActionFilter { $this->view->endCache(); } -} \ No newline at end of file +} diff --git a/framework/web/Pagination.php b/framework/web/Pagination.php index 1d41c0c..764dbb4 100644 --- a/framework/web/Pagination.php +++ b/framework/web/Pagination.php @@ -205,4 +205,4 @@ class Pagination extends \yii\base\Object { return $this->pageSize < 1 ? -1 : $this->pageSize; } -} \ No newline at end of file +} diff --git a/framework/web/Sort.php b/framework/web/Sort.php index e5c2451..99084c1 100644 --- a/framework/web/Sort.php +++ b/framework/web/Sort.php @@ -333,4 +333,4 @@ class Sort extends \yii\base\Object return false; } } -} \ No newline at end of file +} diff --git a/framework/web/UserEvent.php b/framework/web/UserEvent.php index 7a5d23d..4e39380 100644 --- a/framework/web/UserEvent.php +++ b/framework/web/UserEvent.php @@ -31,4 +31,4 @@ class UserEvent extends Event * This property is only meaningful for [[User::EVENT_BEFORE_LOGIN]] and [[User::EVENT_BEFORE_LOGOUT]] events. */ public $isValid = true; -} \ No newline at end of file +} diff --git a/framework/widgets/ActiveField.php b/framework/widgets/ActiveField.php index da17012..336966f 100644 --- a/framework/widgets/ActiveField.php +++ b/framework/widgets/ActiveField.php @@ -541,4 +541,4 @@ class ActiveField extends Component . '' ); } -} \ No newline at end of file +} diff --git a/framework/widgets/Block.php b/framework/widgets/Block.php index d6f7317..fdd210f 100644 --- a/framework/widgets/Block.php +++ b/framework/widgets/Block.php @@ -46,4 +46,4 @@ class Block extends Widget } $this->view->blocks[$this->id] = $block; } -} \ No newline at end of file +} diff --git a/framework/widgets/FragmentCache.php b/framework/widgets/FragmentCache.php index 637d115..5b37f6e 100644 --- a/framework/widgets/FragmentCache.php +++ b/framework/widgets/FragmentCache.php @@ -171,4 +171,4 @@ class FragmentCache extends Widget } return $this->cache->buildKey($factors); } -} \ No newline at end of file +} diff --git a/tests/unit/MysqlTestCase.php b/tests/unit/MysqlTestCase.php index e1a1f7e..c7ef970 100644 --- a/tests/unit/MysqlTestCase.php +++ b/tests/unit/MysqlTestCase.php @@ -33,4 +33,4 @@ class MysqlTestCase extends TestCase } return $db; } -} \ No newline at end of file +} diff --git a/tests/unit/TestCase.php b/tests/unit/TestCase.php index 458c6f3..dccd3af 100644 --- a/tests/unit/TestCase.php +++ b/tests/unit/TestCase.php @@ -13,4 +13,4 @@ class TestCase extends \yii\test\TestCase } return isset(self::$params[$name]) ? self::$params[$name] : null; } -} \ No newline at end of file +} diff --git a/tests/unit/data/ar/ActiveRecord.php b/tests/unit/data/ar/ActiveRecord.php index 95346de..f1194ea 100644 --- a/tests/unit/data/ar/ActiveRecord.php +++ b/tests/unit/data/ar/ActiveRecord.php @@ -23,4 +23,4 @@ class ActiveRecord extends \yii\db\ActiveRecord { return self::$db; } -} \ No newline at end of file +} diff --git a/tests/unit/data/ar/Customer.php b/tests/unit/data/ar/Customer.php index a090b7f..9b3eab6 100644 --- a/tests/unit/data/ar/Customer.php +++ b/tests/unit/data/ar/Customer.php @@ -24,4 +24,4 @@ class Customer extends ActiveRecord { return $query->andWhere('status=1'); } -} \ No newline at end of file +} diff --git a/tests/unit/data/ar/Item.php b/tests/unit/data/ar/Item.php index 279893f..5d23378 100644 --- a/tests/unit/data/ar/Item.php +++ b/tests/unit/data/ar/Item.php @@ -8,4 +8,4 @@ class Item extends ActiveRecord { return 'tbl_item'; } -} \ No newline at end of file +} diff --git a/tests/unit/data/ar/Order.php b/tests/unit/data/ar/Order.php index 38257d6..f9dd715 100644 --- a/tests/unit/data/ar/Order.php +++ b/tests/unit/data/ar/Order.php @@ -43,4 +43,4 @@ class Order extends ActiveRecord return false; } } -} \ No newline at end of file +} diff --git a/tests/unit/data/ar/OrderItem.php b/tests/unit/data/ar/OrderItem.php index f879749..607133e 100644 --- a/tests/unit/data/ar/OrderItem.php +++ b/tests/unit/data/ar/OrderItem.php @@ -18,4 +18,4 @@ class OrderItem extends ActiveRecord { return $this->hasOne('Item', array('id' => 'item_id')); } -} \ No newline at end of file +} diff --git a/tests/unit/data/base/Singer.php b/tests/unit/data/base/Singer.php index 3305b98..f1b91e1 100644 --- a/tests/unit/data/base/Singer.php +++ b/tests/unit/data/base/Singer.php @@ -18,4 +18,4 @@ class Singer extends Model array('underscore_style', 'yii\validators\CaptchaValidator'), ); } -} \ No newline at end of file +} diff --git a/tests/unit/framework/base/ComponentTest.php b/tests/unit/framework/base/ComponentTest.php index 74b6e9a..7c860e3 100644 --- a/tests/unit/framework/base/ComponentTest.php +++ b/tests/unit/framework/base/ComponentTest.php @@ -387,4 +387,4 @@ class NewComponent2 extends Component $this->b = $b; $this->c = $c; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/base/ObjectTest.php b/tests/unit/framework/base/ObjectTest.php index b47b178..14856e2 100644 --- a/tests/unit/framework/base/ObjectTest.php +++ b/tests/unit/framework/base/ObjectTest.php @@ -181,4 +181,4 @@ class NewObject extends Object { return $this->_items; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/ApcCacheTest.php b/tests/unit/framework/caching/ApcCacheTest.php index 604efde..859f6a6 100644 --- a/tests/unit/framework/caching/ApcCacheTest.php +++ b/tests/unit/framework/caching/ApcCacheTest.php @@ -26,4 +26,4 @@ class ApcCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/DbCacheTest.php b/tests/unit/framework/caching/DbCacheTest.php index 594e946..a41667c 100644 --- a/tests/unit/framework/caching/DbCacheTest.php +++ b/tests/unit/framework/caching/DbCacheTest.php @@ -67,4 +67,4 @@ class DbCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/FileCacheTest.php b/tests/unit/framework/caching/FileCacheTest.php index 1f6debd..37d3222 100644 --- a/tests/unit/framework/caching/FileCacheTest.php +++ b/tests/unit/framework/caching/FileCacheTest.php @@ -22,4 +22,4 @@ class FileCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/MemCacheTest.php b/tests/unit/framework/caching/MemCacheTest.php index e4804d9..40dba12 100644 --- a/tests/unit/framework/caching/MemCacheTest.php +++ b/tests/unit/framework/caching/MemCacheTest.php @@ -24,4 +24,4 @@ class MemCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/MemCachedTest.php b/tests/unit/framework/caching/MemCachedTest.php index 59396df..c9e437c 100644 --- a/tests/unit/framework/caching/MemCachedTest.php +++ b/tests/unit/framework/caching/MemCachedTest.php @@ -26,4 +26,4 @@ class MemCachedTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/WinCacheTest.php b/tests/unit/framework/caching/WinCacheTest.php index b78d57b..c9470bd 100644 --- a/tests/unit/framework/caching/WinCacheTest.php +++ b/tests/unit/framework/caching/WinCacheTest.php @@ -28,4 +28,4 @@ class WinCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/XCacheTest.php b/tests/unit/framework/caching/XCacheTest.php index e1ed844..b5e41a6 100644 --- a/tests/unit/framework/caching/XCacheTest.php +++ b/tests/unit/framework/caching/XCacheTest.php @@ -24,4 +24,4 @@ class XCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/caching/ZendDataCacheTest.php b/tests/unit/framework/caching/ZendDataCacheTest.php index 91dfbb5..86c06c8 100644 --- a/tests/unit/framework/caching/ZendDataCacheTest.php +++ b/tests/unit/framework/caching/ZendDataCacheTest.php @@ -24,4 +24,4 @@ class ZendDataCacheTest extends CacheTest } return $this->_cacheInstance; } -} \ No newline at end of file +} diff --git a/tests/unit/framework/db/ActiveRecordTest.php b/tests/unit/framework/db/ActiveRecordTest.php index 3b8c2b5..f0ea968 100644 --- a/tests/unit/framework/db/ActiveRecordTest.php +++ b/tests/unit/framework/db/ActiveRecordTest.php @@ -356,4 +356,4 @@ class ActiveRecordTest extends \yiiunit\MysqlTestCase $customers = Customer::find()->all(); $this->assertEquals(0, count($customers)); } -} \ No newline at end of file +} diff --git a/tests/unit/framework/db/CommandTest.php b/tests/unit/framework/db/CommandTest.php index d505f6d..2576e78 100644 --- a/tests/unit/framework/db/CommandTest.php +++ b/tests/unit/framework/db/CommandTest.php @@ -289,4 +289,4 @@ class CommandTest extends \yiiunit\MysqlTestCase { } -} \ No newline at end of file +} diff --git a/tests/unit/framework/db/QueryTest.php b/tests/unit/framework/db/QueryTest.php index 2c4359f..1c730cd 100644 --- a/tests/unit/framework/db/QueryTest.php +++ b/tests/unit/framework/db/QueryTest.php @@ -113,4 +113,4 @@ class QueryTest extends \yiiunit\MysqlTestCase { } -} \ No newline at end of file +} diff --git a/tests/unit/framework/helpers/JsonTest.php b/tests/unit/framework/helpers/JsonTest.php index 0e06eb3..6a78cd1 100644 --- a/tests/unit/framework/helpers/JsonTest.php +++ b/tests/unit/framework/helpers/JsonTest.php @@ -57,4 +57,4 @@ class JsonTest extends \yii\test\TestCase $this->setExpectedException('yii\base\InvalidParamException'); Json::decode($json); } -} \ No newline at end of file +} diff --git a/tests/unit/framework/helpers/StringHelperTest.php b/tests/unit/framework/helpers/StringHelperTest.php index 4e1266f..c37aafd 100644 --- a/tests/unit/framework/helpers/StringHelperTest.php +++ b/tests/unit/framework/helpers/StringHelperTest.php @@ -70,4 +70,4 @@ class StringHelperTest extends \yii\test\TestCase $this->assertEquals('PostTag', StringHelper::id2camel('post-tag')); $this->assertEquals('PostTag', StringHelper::id2camel('post_tag', '_')); } -} \ No newline at end of file +} diff --git a/tests/unit/framework/helpers/VarDumperTest.php b/tests/unit/framework/helpers/VarDumperTest.php index 8757588..a797121 100644 --- a/tests/unit/framework/helpers/VarDumperTest.php +++ b/tests/unit/framework/helpers/VarDumperTest.php @@ -9,4 +9,4 @@ class VarDumperTest extends \yii\test\TestCase $obj = new \StdClass(); VarDumper::dump($obj); } -} \ No newline at end of file +} diff --git a/tests/unit/framework/validators/EmailValidatorTest.php b/tests/unit/framework/validators/EmailValidatorTest.php index fbc2f53..512eb5c 100644 --- a/tests/unit/framework/validators/EmailValidatorTest.php +++ b/tests/unit/framework/validators/EmailValidatorTest.php @@ -25,4 +25,4 @@ class EmailValidatorTest extends TestCase $this->assertTrue($validator->validateValue('sam@rmcreative.ru')); $this->assertFalse($validator->validateValue('test@example.com')); } -} \ No newline at end of file +} diff --git a/tests/web/app/protected/config/main.php b/tests/web/app/protected/config/main.php index eed6d54..d5be5de 100644 --- a/tests/web/app/protected/config/main.php +++ b/tests/web/app/protected/config/main.php @@ -1,3 +1,3 @@ Date: Sun, 5 May 2013 15:11:53 -0400 Subject: [PATCH 13/14] Fixes issue #124. --- framework/base/Application.php | 9 +++++++++ framework/web/AccessRule.php | 2 +- framework/web/User.php | 17 +++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/framework/base/Application.php b/framework/base/Application.php index 6dca5cf..5b92f76 100644 --- a/framework/base/Application.php +++ b/framework/base/Application.php @@ -306,6 +306,15 @@ class Application extends Module } /** + * @return null|Component + * @todo + */ + public function getAuthManager() + { + return $this->getComponent('auth'); + } + + /** * Registers the core application components. * @see setComponents */ diff --git a/framework/web/AccessRule.php b/framework/web/AccessRule.php index 3f8c057..1bcb896 100644 --- a/framework/web/AccessRule.php +++ b/framework/web/AccessRule.php @@ -144,7 +144,7 @@ class AccessRule extends Component return true; } elseif ($role === '@' && !$user->getIsGuest()) { return true; - } elseif ($user->hasAccess($role)) { + } elseif ($user->checkAccess($role)) { return true; } } diff --git a/framework/web/User.php b/framework/web/User.php index b8bf7cd..2fbea91 100644 --- a/framework/web/User.php +++ b/framework/web/User.php @@ -447,4 +447,21 @@ class User extends Component } } } + + /** + * Checks whether the user has access to the specified operation. + * @param $operator + * @param array $params + * @return bool + * @todo + */ + public function checkAccess($operation, $params = array()) + { + $auth = Yii::$app->getAuthManager(); + if ($auth !== null) { + return $auth->checkAccess($this->getId(), $operation, $params); + } else { + return true; + } + } } From 0766fbccb5b2b40b4eb414e97faa00a915ccd206 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Sun, 5 May 2013 17:16:10 -0400 Subject: [PATCH 14/14] Fixes issue #128. --- framework/helpers/base/SecurityHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/helpers/base/SecurityHelper.php b/framework/helpers/base/SecurityHelper.php index d220bf4..3f69fee 100644 --- a/framework/helpers/base/SecurityHelper.php +++ b/framework/helpers/base/SecurityHelper.php @@ -217,7 +217,7 @@ class SecurityHelper throw new InvalidParamException('Password must be a string and cannot be empty.'); } - if (!preg_match('/^\$2[axy]\$(\d\d)\$[\./0-9A-Za-z]{22}/', $hash, $matches) || $matches[1] < 4 || $matches[1] > 30) { + if (!preg_match('/^\$2[axy]\$(\d\d)\$[\.\/0-9A-Za-z]{22}/', $hash, $matches) || $matches[1] < 4 || $matches[1] > 30) { throw new InvalidParamException('Hash is invalid.'); }