diff --git a/apps/advanced/backend/views/layouts/main.php b/apps/advanced/backend/views/layouts/main.php
index 1c003e5..85a4d2b 100644
--- a/apps/advanced/backend/views/layouts/main.php
+++ b/apps/advanced/backend/views/layouts/main.php
@@ -15,8 +15,8 @@ AppAsset::register($this);
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="<?=Yii::$app->charset; ?>"/>
-	<title><?=Html::encode($this->title); ?></title>
+	<meta charset="<?= Yii::$app->charset ?>"/>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
@@ -48,13 +48,13 @@ AppAsset::register($this);
 	<?=Breadcrumbs::widget([
 		'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
 	]); ?>
-	<?=$content; ?>
+	<?= $content ?>
 	</div>
 
 	<footer class="footer">
 		<div class="container">
-		<p class="pull-left">&copy; My Company <?=date('Y'); ?></p>
-		<p class="pull-right"><?=Yii::powered(); ?></p>
+		<p class="pull-left">&copy; My Company <?= date('Y') ?></p>
+		<p class="pull-right"><?= Yii::powered() ?></p>
 		</div>
 	</footer>
 
diff --git a/apps/advanced/backend/views/site/error.php b/apps/advanced/backend/views/site/error.php
index eef87f6..15a8eee 100644
--- a/apps/advanced/backend/views/site/error.php
+++ b/apps/advanced/backend/views/site/error.php
@@ -13,10 +13,10 @@ $this->title = $name;
 ?>
 <div class="site-error">
 
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<div class="alert alert-danger">
-		<?=nl2br(Html::encode($message)); ?>
+		<?= nl2br(Html::encode($message)) ?>
 	</div>
 
 	<p>
diff --git a/apps/advanced/backend/views/site/login.php b/apps/advanced/backend/views/site/login.php
index d52eaa1..65495bf 100644
--- a/apps/advanced/backend/views/site/login.php
+++ b/apps/advanced/backend/views/site/login.php
@@ -11,18 +11,18 @@ $this->title = 'Login';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-login">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please fill out the following fields to login:</p>
 
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
-				<?=$form->field($model, 'username'); ?>
-				<?=$form->field($model, 'password')->passwordInput(); ?>
-				<?=$form->field($model, 'rememberMe')->checkbox(); ?>
+				<?= $form->field($model, 'username') ?>
+				<?= $form->field($model, 'password')->passwordInput() ?>
+				<?= $form->field($model, 'rememberMe')->checkbox() ?>
 				<div class="form-group">
-					<?=Html::submitButton('Login', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/advanced/frontend/views/layouts/main.php b/apps/advanced/frontend/views/layouts/main.php
index 0b36edc..4f1510e 100644
--- a/apps/advanced/frontend/views/layouts/main.php
+++ b/apps/advanced/frontend/views/layouts/main.php
@@ -16,8 +16,8 @@ AppAsset::register($this);
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="<?=Yii::$app->charset; ?>"/>
-	<title><?=Html::encode($this->title); ?></title>
+	<meta charset="<?= Yii::$app->charset ?>"/>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
@@ -53,13 +53,13 @@ AppAsset::register($this);
 		'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
 	]); ?>
 	<?=Alert::widget()?>
-	<?=$content; ?>
+	<?= $content ?>
 	</div>
 
 	<footer class="footer">
 		<div class="container">
-		<p class="pull-left">&copy; My Company <?=date('Y'); ?></p>
-		<p class="pull-right"><?=Yii::powered(); ?></p>
+		<p class="pull-left">&copy; My Company <?= date('Y') ?></p>
+		<p class="pull-right"><?= Yii::powered() ?></p>
 		</div>
 	</footer>
 
diff --git a/apps/advanced/frontend/views/site/about.php b/apps/advanced/frontend/views/site/about.php
index 2084648..32b84eb 100644
--- a/apps/advanced/frontend/views/site/about.php
+++ b/apps/advanced/frontend/views/site/about.php
@@ -8,9 +8,9 @@ $this->title = 'About';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-about">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>This is the About page. You may modify the following file to customize its content:</p>
 
-	<code><?=__FILE__; ?></code>
+	<code><?= __FILE__ ?></code>
 </div>
diff --git a/apps/advanced/frontend/views/site/contact.php b/apps/advanced/frontend/views/site/contact.php
index 012c36d..97580ca 100644
--- a/apps/advanced/frontend/views/site/contact.php
+++ b/apps/advanced/frontend/views/site/contact.php
@@ -12,7 +12,7 @@ $this->title = 'Contact';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-contact">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>
 		If you have business inquiries or other questions, please fill out the following form to contact us. Thank you.
@@ -21,16 +21,16 @@ $this->params['breadcrumbs'][] = $this->title;
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
-				<?=$form->field($model, 'name'); ?>
-				<?=$form->field($model, 'email'); ?>
-				<?=$form->field($model, 'subject'); ?>
-				<?=$form->field($model, 'body')->textArea(['rows' => 6]); ?>
+				<?= $form->field($model, 'name') ?>
+				<?= $form->field($model, 'email') ?>
+				<?= $form->field($model, 'subject') ?>
+				<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
 				<?=$form->field($model, 'verifyCode')->widget(Captcha::className(), [
 					'options' => ['class' => 'form-control'],
 					'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
 				]); ?>
 				<div class="form-group">
-					<?=Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/advanced/frontend/views/site/error.php b/apps/advanced/frontend/views/site/error.php
index eef87f6..15a8eee 100644
--- a/apps/advanced/frontend/views/site/error.php
+++ b/apps/advanced/frontend/views/site/error.php
@@ -13,10 +13,10 @@ $this->title = $name;
 ?>
 <div class="site-error">
 
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<div class="alert alert-danger">
-		<?=nl2br(Html::encode($message)); ?>
+		<?= nl2br(Html::encode($message)) ?>
 	</div>
 
 	<p>
diff --git a/apps/advanced/frontend/views/site/login.php b/apps/advanced/frontend/views/site/login.php
index df758a8..3069f90 100644
--- a/apps/advanced/frontend/views/site/login.php
+++ b/apps/advanced/frontend/views/site/login.php
@@ -11,21 +11,21 @@ $this->title = 'Login';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-login">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please fill out the following fields to login:</p>
 
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
-				<?=$form->field($model, 'username'); ?>
-				<?=$form->field($model, 'password')->passwordInput(); ?>
-				<?=$form->field($model, 'rememberMe')->checkbox(); ?>
+				<?= $form->field($model, 'username') ?>
+				<?= $form->field($model, 'password')->passwordInput() ?>
+				<?= $form->field($model, 'rememberMe')->checkbox() ?>
 				<div style="color:#999;margin:1em 0">
 					If you forgot your password you can <?=Html::a('reset it', ['site/request-password-reset'])?>.
 				</div>
 				<div class="form-group">
-					<?=Html::submitButton('Login', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/advanced/frontend/views/site/requestPasswordResetToken.php b/apps/advanced/frontend/views/site/requestPasswordResetToken.php
index f906b72..88d23be 100644
--- a/apps/advanced/frontend/views/site/requestPasswordResetToken.php
+++ b/apps/advanced/frontend/views/site/requestPasswordResetToken.php
@@ -11,16 +11,16 @@ $this->title = 'Request password reset';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-request-password-reset">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please fill out your email. A link to reset password will be sent there.</p>
 
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?>
-				<?=$form->field($model, 'email'); ?>
+				<?= $form->field($model, 'email') ?>
 				<div class="form-group">
-					<?=Html::submitButton('Send', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Send', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/advanced/frontend/views/site/resetPassword.php b/apps/advanced/frontend/views/site/resetPassword.php
index 40c1106..dc5beba 100644
--- a/apps/advanced/frontend/views/site/resetPassword.php
+++ b/apps/advanced/frontend/views/site/resetPassword.php
@@ -11,16 +11,16 @@ $this->title = 'Reset password';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-reset-password">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please choose your new password:</p>
 
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'reset-password-form']); ?>
-				<?=$form->field($model, 'password')->passwordInput(); ?>
+				<?= $form->field($model, 'password')->passwordInput() ?>
 				<div class="form-group">
-					<?=Html::submitButton('Save', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Save', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/advanced/frontend/views/site/signup.php b/apps/advanced/frontend/views/site/signup.php
index 82bc78c..bfebceb 100644
--- a/apps/advanced/frontend/views/site/signup.php
+++ b/apps/advanced/frontend/views/site/signup.php
@@ -11,18 +11,18 @@ $this->title = 'Signup';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-signup">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please fill out the following fields to signup:</p>
 
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>
-				<?=$form->field($model, 'username'); ?>
-				<?=$form->field($model, 'email'); ?>
-				<?=$form->field($model, 'password')->passwordInput(); ?>
+				<?= $form->field($model, 'username') ?>
+				<?= $form->field($model, 'email') ?>
+				<?= $form->field($model, 'password')->passwordInput() ?>
 				<div class="form-group">
-					<?=Html::submitButton('Signup', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Signup', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/basic/tests/acceptance/WebGuy.php b/apps/basic/tests/acceptance/WebGuy.php
index 397761c..e6cc370 100644
--- a/apps/basic/tests/acceptance/WebGuy.php
+++ b/apps/basic/tests/acceptance/WebGuy.php
@@ -36,7 +36,7 @@ class WebGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->submitForm('#login', array('login' => 'davert', 'password' => '123456'));
+     * $I->submitForm('#login', ['login' => 'davert', 'password' => '123456']);
      *
      * ```
      *
@@ -55,7 +55,7 @@ class WebGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)));
+     * $I->submitForm('#userForm', ['user' => ['login' => 'Davert', 'password' => '123456', 'agree' => true]]);
      *
      * ```
      * Note, that pricing plan will be set to Paid, as it's selected on page.
@@ -89,8 +89,8 @@ class WebGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true); // POST
-     * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true); // GET
+     * $I->sendAjaxPostRequest('/updateSettings', ['notifications' => true]; // POST
+     * $I->sendAjaxGetRequest('/updateSettings', ['notifications' => true]; // GET
      *
      * ```
      *
@@ -202,12 +202,12 @@ class WebGuy extends \Codeception\AbstractGuy
      * // from the official Guzzle manual
      * $I->amGoingTo('Sign all requests with OAuth');
      * $I->executeInGuzzle(function (\Guzzle\Http\Client $client) {
-     *      $client->addSubscriber(new Guzzle\Plugin\Oauth\OauthPlugin(array(
+     *      $client->addSubscriber(new Guzzle\Plugin\Oauth\OauthPlugin([
      *                  'consumer_key'    => '***',
      *                  'consumer_secret' => '***',
      *                  'token'           => '***',
      *                  'token_secret'    => '***'
-     *      )));
+     *      ]));
      * });
      * ?>
      * ```
diff --git a/apps/basic/tests/functional/TestGuy.php b/apps/basic/tests/functional/TestGuy.php
index 767d564..58baf56 100644
--- a/apps/basic/tests/functional/TestGuy.php
+++ b/apps/basic/tests/functional/TestGuy.php
@@ -832,7 +832,7 @@ class TestGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->submitForm('#login', array('login' => 'davert', 'password' => '123456'));
+     * $I->submitForm('#login', ['login' => 'davert', 'password' => '123456']);
      *
      * ```
      *
@@ -851,7 +851,7 @@ class TestGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)));
+     * $I->submitForm('#userForm', ['user' => ['login' => 'Davert', 'password' => '123456', 'agree' => true]]);
      *
      * ```
      * Note, that pricing plan will be set to Paid, as it's selected on page.
@@ -1042,8 +1042,8 @@ class TestGuy extends \Codeception\AbstractGuy
      *
      * ``` php
      * <?php
-     * $I->sendAjaxPostRequest('/updateSettings', array('notifications' => true); // POST
-     * $I->sendAjaxGetRequest('/updateSettings', array('notifications' => true); // GET
+     * $I->sendAjaxPostRequest('/updateSettings', ['notifications' => true]; // POST
+     * $I->sendAjaxGetRequest('/updateSettings', ['notifications' => true]; // GET
      *
      * ```
      *
diff --git a/apps/basic/views/layouts/main.php b/apps/basic/views/layouts/main.php
index 3ffbf0f..88066de 100644
--- a/apps/basic/views/layouts/main.php
+++ b/apps/basic/views/layouts/main.php
@@ -14,8 +14,8 @@ app\config\AppAsset::register($this);
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="<?=Yii::$app->charset; ?>"/>
-	<title><?=Html::encode($this->title); ?></title>
+	<meta charset="<?= Yii::$app->charset ?>"/>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
@@ -48,13 +48,13 @@ app\config\AppAsset::register($this);
 		<?=Breadcrumbs::widget([
 			'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [],
 		]); ?>
-		<?=$content; ?>
+		<?= $content ?>
 	</div>
 
 	<footer class="footer">
 		<div class="container">
-			<p class="pull-left">&copy; My Company <?=date('Y'); ?></p>
-			<p class="pull-right"><?=Yii::powered(); ?></p>
+			<p class="pull-left">&copy; My Company <?= date('Y') ?></p>
+			<p class="pull-right"><?= Yii::powered() ?></p>
 		</div>
 	</footer>
 
diff --git a/apps/basic/views/site/about.php b/apps/basic/views/site/about.php
index e4070a8..5010642 100644
--- a/apps/basic/views/site/about.php
+++ b/apps/basic/views/site/about.php
@@ -8,11 +8,11 @@ $this->title = 'About';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-about">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>
 		This is the About page. You may modify the following file to customize its content:
 	</p>
 
-	<code><?=__FILE__; ?></code>
+	<code><?= __FILE__ ?></code>
 </div>
diff --git a/apps/basic/views/site/contact.php b/apps/basic/views/site/contact.php
index 450e06b..66711a5 100644
--- a/apps/basic/views/site/contact.php
+++ b/apps/basic/views/site/contact.php
@@ -12,7 +12,7 @@ $this->title = 'Contact';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-contact">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<?php if (Yii::$app->session->hasFlash('contactFormSubmitted')): ?>
 
@@ -29,16 +29,16 @@ $this->params['breadcrumbs'][] = $this->title;
 	<div class="row">
 		<div class="col-lg-5">
 			<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>
-				<?=$form->field($model, 'name'); ?>
-				<?=$form->field($model, 'email'); ?>
-				<?=$form->field($model, 'subject'); ?>
-				<?=$form->field($model, 'body')->textArea(['rows' => 6]); ?>
+				<?= $form->field($model, 'name') ?>
+				<?= $form->field($model, 'email') ?>
+				<?= $form->field($model, 'subject') ?>
+				<?= $form->field($model, 'body')->textArea(['rows' => 6]) ?>
 				<?=$form->field($model, 'verifyCode')->widget(Captcha::className(), [
 					'options' => ['class' => 'form-control'],
 					'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',
 				]); ?>
 				<div class="form-group">
-					<?=Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
 				</div>
 			<?php ActiveForm::end(); ?>
 		</div>
diff --git a/apps/basic/views/site/error.php b/apps/basic/views/site/error.php
index eef87f6..15a8eee 100644
--- a/apps/basic/views/site/error.php
+++ b/apps/basic/views/site/error.php
@@ -13,10 +13,10 @@ $this->title = $name;
 ?>
 <div class="site-error">
 
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<div class="alert alert-danger">
-		<?=nl2br(Html::encode($message)); ?>
+		<?= nl2br(Html::encode($message)) ?>
 	</div>
 
 	<p>
diff --git a/apps/basic/views/site/login.php b/apps/basic/views/site/login.php
index 34936af..62b4398 100644
--- a/apps/basic/views/site/login.php
+++ b/apps/basic/views/site/login.php
@@ -11,7 +11,7 @@ $this->title = 'Login';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
 <div class="site-login">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
 	<p>Please fill out the following fields to login:</p>
 
@@ -24,9 +24,9 @@ $this->params['breadcrumbs'][] = $this->title;
 		],
 	]); ?>
 
-	<?=$form->field($model, 'username'); ?>
+	<?= $form->field($model, 'username') ?>
 
-	<?=$form->field($model, 'password')->passwordInput(); ?>
+	<?= $form->field($model, 'password')->passwordInput() ?>
 
 	<?=$form->field($model, 'rememberMe', [
 		'template' => "<div class=\"col-lg-offset-1 col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
@@ -34,7 +34,7 @@ $this->params['breadcrumbs'][] = $this->title;
 
 	<div class="form-group">
 		<div class="col-lg-offset-1 col-lg-11">
-			<?=Html::submitButton('Login', ['class' => 'btn btn-primary']); ?>
+			<?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
 		</div>
 	</div>
 
diff --git a/docs/api/db/ActiveRecord.md b/docs/api/db/ActiveRecord.md
index 0120998..70f171b 100644
--- a/docs/api/db/ActiveRecord.md
+++ b/docs/api/db/ActiveRecord.md
@@ -175,7 +175,7 @@ class Customer extends \yii\db\ActiveRecord
 {
 	public function getOrders()
 	{
-		return $this->hasMany('Order', ['customer_id' => 'id']);
+		return $this->hasMany(Order::className(), ['customer_id' => 'id']);
 	}
 }
 
@@ -183,7 +183,7 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getCustomer()
 	{
-		return $this->hasOne('Customer', ['id' => 'customer_id']);
+		return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
 	}
 }
 ~~~
@@ -194,8 +194,7 @@ a one-many relationship. For example, a customer has many orders. And the [[hasO
 method declares a many-one or one-one relationship. For example, an order has one customer.
 Both methods take two parameters:
 
-- `$class`: the name of the class related models should use. If specified without
-  a namespace, the namespace will be taken from the declaring class.
+- `$class`: the name of the class that the related models should use.
 - `$link`: the association between columns from two tables. This should be given as an array.
   The keys of the array are the names of the columns from the table associated with `$class`,
   while the values of the array are the names of the columns from the declaring class.
@@ -223,7 +222,7 @@ class Customer extends \yii\db\ActiveRecord
 {
 	public function getBigOrders($threshold = 100)
 	{
-		return $this->hasMany('Order', ['customer_id' => 'id'])
+		return $this->hasMany(Order::className(), ['customer_id' => 'id'])
 			->where('subtotal > :threshold', [':threshold' => $threshold])
 			->orderBy('id');
 	}
@@ -244,7 +243,7 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getItems()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->viaTable('tbl_order_item', ['order_id' => 'id']);
 	}
 }
@@ -259,12 +258,12 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getOrderItems()
 	{
-		return $this->hasMany('OrderItem', ['order_id' => 'id']);
+		return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
 	}
 
 	public function getItems()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->via('orderItems');
 	}
 }
diff --git a/docs/guide/active-record.md b/docs/guide/active-record.md
index 3de4a01..90826b0 100644
--- a/docs/guide/active-record.md
+++ b/docs/guide/active-record.md
@@ -202,7 +202,7 @@ class Customer extends \yii\db\ActiveRecord
 {
 	public function getOrders()
 	{
-		return $this->hasMany('Order', ['customer_id' => 'id']);
+		return $this->hasMany(Order::className(), ['customer_id' => 'id']);
 	}
 }
 
@@ -210,7 +210,7 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getCustomer()
 	{
-		return $this->hasOne('Customer', ['id' => 'customer_id']);
+		return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
 	}
 }
 ```
@@ -257,7 +257,7 @@ class Customer extends \yii\db\ActiveRecord
 {
 	public function getBigOrders($threshold = 100)
 	{
-		return $this->hasMany('Order', ['customer_id' => 'id'])
+		return $this->hasMany(Order::className(), ['customer_id' => 'id'])
 			->where('subtotal > :threshold', [':threshold' => $threshold])
 			->orderBy('id');
 	}
@@ -291,7 +291,7 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getItems()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->viaTable('tbl_order_item', ['order_id' => 'id']);
 	}
 }
@@ -306,12 +306,12 @@ class Order extends \yii\db\ActiveRecord
 {
 	public function getOrderItems()
 	{
-		return $this->hasMany('OrderItem', ['order_id' => 'id']);
+		return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
 	}
 
 	public function getItems()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->via('orderItems');
 	}
 }
@@ -517,7 +517,7 @@ class Feature extends \yii\db\ActiveRecord
 
 	public function getProduct()
 	{
-		return $this->hasOne('Product', ['product_id' => 'id']);
+		return $this->hasOne(Product::className(), ['product_id' => 'id']);
 	}
 }
 
@@ -527,7 +527,7 @@ class Product extends \yii\db\ActiveRecord
 
 	public function getFeatures()
 	{
-		return $this->hasMany('Feature', ['id' => 'product_id']);
+		return $this->hasMany(Feature::className(), ['id' => 'product_id']);
 	}
 }
 ```
@@ -566,7 +566,7 @@ class Feature extends \yii\db\ActiveRecord
 
 	public function getProduct()
 	{
-		return $this->hasOne('Product', ['product_id' => 'id']);
+		return $this->hasOne(Product::className(), ['product_id' => 'id']);
 	}
 
 	public function scenarios()
@@ -586,7 +586,7 @@ class Product extends \yii\db\ActiveRecord
 
 	public function getFeatures()
 	{
-		return $this->hasMany('Feature', ['id' => 'product_id']);
+		return $this->hasMany(Feature::className(), ['id' => 'product_id']);
 	}
 
 	public function scenarios()
diff --git a/docs/guide/i18n.md b/docs/guide/i18n.md
index e44dc6b..de1c80d 100644
--- a/docs/guide/i18n.md
+++ b/docs/guide/i18n.md
@@ -205,7 +205,7 @@ Will produce "You are 42nd visitor here!".
 
 
 ```php
-echo \Yii::t('app', 'You are here for {n, duration} already!', ['n' => 42]);
+echo \Yii::t('app', 'You are here for {n, duration} already!', ['n' => 47]);
 ```
 
 Will produce "You are here for 47 sec. already!".
diff --git a/docs/guide/installation.md b/docs/guide/installation.md
index 8ec3619..11e6a5e 100644
--- a/docs/guide/installation.md
+++ b/docs/guide/installation.md
@@ -83,57 +83,28 @@ Yii to catch all requests to nonexistent files, which allows us to have nice-loo
 
 ~~~
 server {
-    set $host_path "/www/mysite";
-    access_log  /www/mysite/log/access.log  main;
-
-    server_name  mysite;
-    root  $host_path/htdocs;
-    set $yii_bootstrap "index.php";
-
     charset utf-8;
 
-    location / {
-        index  index.html $yii_bootstrap;
-        try_files $uri $uri/ /$yii_bootstrap?$args;
-    }
+    listen       80;
+    server_name  mysite.local;
+    root         /path/to/project/webroot/directory
 
-    location ~ ^/(protected|framework|themes/\w+/views) {
-        deny  all;
-    }
+    access_log  /path/to/project/log/access.log  main;
 
-    #avoid processing of calls to unexisting static files by yii
-    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
-        try_files $uri =404;
+    location / {
+        try_files   $uri $uri/ /index.php?$args; # Redirect everything that isn't real file to index.php including arguments.
     }
 
-    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-    #
-    location ~ \.php {
-        fastcgi_split_path_info  ^(.+\.php)(.*)$;
-
-        #let yii catch the calls to unexising PHP files
-        set $fsn /$yii_bootstrap;
-        if (-f $document_root$fastcgi_script_name){
-            set $fsn $fastcgi_script_name;
-        }
-
-        #for php-cgi
+    location ~ \.php$ {
+        include fastcgi.conf;
         fastcgi_pass   127.0.0.1:9000;
-        #for php-fpm
         #fastcgi_pass unix:/var/run/php5-fpm.sock;
-        include fastcgi_params;
-        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;
-
-        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
-        fastcgi_param  PATH_INFO        $fastcgi_path_info;
-        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
     }
 
-    location ~ /\.ht {
-        deny  all;
+    location ~ /\.(ht|svn|git) {
+        deny all;
     }
 }
 ~~~
 
-Using this configuration you can set `cgi.fix_pathinfo=0` in php.ini to avoid
-many unnecessary system `stat()` calls.
+Make sure to set `cgi.fix_pathinfo=0` in php.ini to avoid many unnecessary system `stat()` calls.
diff --git a/docs/guide/upgrade-from-v1.md b/docs/guide/upgrade-from-v1.md
index 713f967..f04e849 100644
--- a/docs/guide/upgrade-from-v1.md
+++ b/docs/guide/upgrade-from-v1.md
@@ -340,10 +340,10 @@ It is represented as an `ActiveField` object. Using fields, you can build a form
 
 ```php
 <?php $form = yii\widgets\ActiveForm::begin(); ?>
-	<?=$form->field($model, 'username'); ?>
-	<?=$form->field($model, 'password')->passwordInput(); ?>
+	<?= $form->field($model, 'username') ?>
+	<?= $form->field($model, 'password')->passwordInput() ?>
 	<div class="form-group">
-		<?=Html::submitButton('Login'); ?>
+		<?= Html::submitButton('Login') ?>
 	</div>
 <?php yii\widgets\ActiveForm::end(); ?>
 ```
diff --git a/docs/guide/url.md b/docs/guide/url.md
index 46bb177..a82f741 100644
--- a/docs/guide/url.md
+++ b/docs/guide/url.md
@@ -1,3 +1,116 @@
 URL Management
 ==============
 
+The concept of URL management in Yii fairly simple. The idea is that application uses internal routes and parameters
+everywhere. Framework takes care of translating routes into URLs and back according to URL manager configuration.
+This approach allows you to adjust URLs in a single config file without touching application code.
+
+Internal route
+--------------
+
+Internal routes and parameters are what you're dealing with when implementing an application using Yii.
+
+Each controller and its action has a corresponding internal route such as `site/index`. Here `site` is referred to as
+controller ID while `index` is referred to as action ID. If controller belongs to a module, internal route is prefixed
+with the module ID such as `blog/post/index` for a blog module.
+
+Creating URLs
+-------------
+
+As was already mentioned, the most important rule is to always use URL manager to create URLs. Url manages is an
+application component with `urlManager` id that is accessible both from web and console applications via
+`\Yii::$app->urlManager` and has two following URL creation methods available:
+
+- createUrl($route, $params = [])
+- createAbsoluteUrl($route, $params = [])
+
+First one creates URL relative to the application root while the second one creates URL prefixed with protocol and
+hostname. The former is suitable for internal application URLs while the latter is used when you need to create rules
+for outside the website. For example, when sending emails or generating RSS feed.
+
+Some examples:
+
+```php
+echo \Yii::$app->urlManager->createUrl('site/page', ['id' => 'about']);
+echo \Yii::$app->urlManager->createAbsoluteUrl('blog/post/index');
+```
+
+Inside web application controller you can use its own `createUrl` shortcut method in the following forms:
+
+```php
+echo $this->createUrl(''); // currently active route
+echo $this->createUrl('view', ['id' => 'contact']); // same controller, different action
+echo $this->createUrl('post/index'); // same module, different controller and action
+echo $this->createUrl('/site/index'); // absolute route no matter which controller we're in
+```
+
+> **Tip**: In order to generate URL with a hashtag, for example `/index.php?r=site/page&id=100#title`, you need to
+  specify parameter named `#` using `$this->createUrl('post/read', ['id' => 100, '#' => 'title'])`.
+
+Customizing URLs
+----------------
+
+By default Yii uses a query string format URLs such as `/index.php?r=news/view&id=100`. In order to make URLs
+human-friendly you need to configure `urlManager` component like the following:
+
+```php
+<?php
+return [
+	// ...
+	'components' => [
+		'urlManager' => [
+			'enablePrettyUrl' => true,
+			'showScriptName' => false,
+		],
+	],
+];
+```
+
+Note that
+
+### Named parameters
+
+### Handling subdomains
+
+### Faking URL Suffix
+
+```php
+<?php
+return [
+	// ...
+	'components' => [
+		'urlManager' => [
+			'suffix' => '.html',
+		],
+	],
+];
+```
+
+### Handling REST
+
+
+URL parsing
+-----------
+
+Complimentary to creating URLs Yii is handling transforming custom URLs back into internal route and parameters.
+
+### Strict URL parsing
+
+By default if there's no custom rule for URL and URL matches default format such as `/site/page` Yii tries to run a
+corresponding controller's action. This behavior could be disabled so if there's no custom rule match, a 404 not found
+error will be produced immediately.
+
+```php
+<?php
+return [
+	// ...
+	'components' => [
+		'urlManager' => [
+			'enableStrictParsing' => true,
+		],
+	],
+];
+```
+
+Creating your own rule classes
+------------------------------
diff --git a/docs/guide/view.md b/docs/guide/view.md
index 27a90ae..98e0140 100644
--- a/docs/guide/view.md
+++ b/docs/guide/view.md
@@ -76,7 +76,7 @@ use yii\helpers\Html;
 ?>
 
 <div class="username">
-	<?=Html::encode($user->name); ?>
+	<?= Html::encode($user->name) ?>
 </div>
 ```
 
@@ -97,7 +97,7 @@ use yii\helpers\HtmlPurifier;
 ?>
 
 <div class="post">
-	<?=HtmlPurifier::process($post->text); ?>
+	<?= HtmlPurifier::process($post->text) ?>
 </div>
 ```
 
@@ -256,16 +256,16 @@ use yii\helpers\Html;
 ?>
 <?php $this->beginPage(); ?>
 <!DOCTYPE html>
-<html lang="<?=Yii::$app->charset; ?>">
+<html lang="<?= Yii::$app->charset ?>">
 <head>
-	<meta charset="<?=Yii::$app->charset; ?>"/>
-	<title><?=Html::encode($this->title); ?></title>
+	<meta charset="<?= Yii::$app->charset ?>"/>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
 <?php $this->beginBody(); ?>
 	<div class="container">
-		<?=$content; ?>
+		<?= $content ?>
 	</div>
 	<footer class="footer">© 2013 me :)</footer>
 <?php $this->endBody(); ?>
@@ -295,8 +295,8 @@ use yii\helpers\Html;
 ?>
 
 <div class="profile">
-	<h2><?=Html::encode($username); ?></h2>
-	<p><?=Html::encode($tagline); ?></p>
+	<h2><?= Html::encode($username) ?></h2>
+	<p><?= Html::encode($tagline) ?></p>
 </div>
 ```
 
diff --git a/extensions/composer/yii/composer/Installer.php b/extensions/composer/yii/composer/Installer.php
index 6fcfeff..8b7363c 100644
--- a/extensions/composer/yii/composer/Installer.php
+++ b/extensions/composer/yii/composer/Installer.php
@@ -31,7 +31,7 @@ class Installer extends LibraryInstaller
 	 */
 	public function supports($packageType)
 	{
-		return $packageType === 'yii-extension';
+		return $packageType === 'yii2-extension';
 	}
 
 	/**
@@ -65,7 +65,7 @@ class Installer extends LibraryInstaller
 	protected function addPackage(PackageInterface $package)
 	{
 		$extension = [
-			'name' => $package->getPrettyName(),
+			'name' => $package->getName(),
 			'version' => $package->getVersion(),
 		];
 
@@ -76,14 +76,14 @@ class Installer extends LibraryInstaller
 		}
 
 		$extensions = $this->loadExtensions();
-		$extensions[$package->getUniqueName()] = $extension;
+		$extensions[$package->getName()] = $extension;
 		$this->saveExtensions($extensions);
 	}
 
 	protected function removePackage(PackageInterface $package)
 	{
 		$packages = $this->loadExtensions();
-		unset($packages[$package->getUniqueName()]);
+		unset($packages[$package->getName()]);
 		$this->saveExtensions($packages);
 	}
 
diff --git a/extensions/composer/yii/composer/InstallerPlugin.php b/extensions/composer/yii/composer/InstallerPlugin.php
index 519363d..0b8ce5f 100644
--- a/extensions/composer/yii/composer/InstallerPlugin.php
+++ b/extensions/composer/yii/composer/InstallerPlugin.php
@@ -28,7 +28,7 @@ class InstallerPlugin implements PluginInterface
 		$composer->getInstallationManager()->addInstaller($installer);
 		$file = rtrim($composer->getConfig()->get('vendor-dir'), '/') . '/yii-extensions.php';
 		if (!is_file($file)) {
-			file_put_contents($file, "<?php\nreturn array();\n");
+			file_put_contents($file, "<?php\nreturn [];\n");
 		}
 	}
 }
diff --git a/extensions/jui/composer.json b/extensions/jui/composer.json
index 9e97866..e7dab28 100644
--- a/extensions/jui/composer.json
+++ b/extensions/jui/composer.json
@@ -2,7 +2,7 @@
 	"name": "yiisoft/yii2-jui",
 	"description": "The Jquery UI extension for the Yii framework",
 	"keywords": ["yii", "Jquery UI", "renderer"],
-	"type": "yii-extension",
+	"type": "yii2-extension",
 	"license": "BSD-3-Clause",
 	"support": {
 		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
diff --git a/extensions/mutex/composer.json b/extensions/mutex/composer.json
index 56fdb7d..e0079ef 100644
--- a/extensions/mutex/composer.json
+++ b/extensions/mutex/composer.json
@@ -2,7 +2,7 @@
 	"name": "yiisoft/yii2-mutex",
 	"description": "Mutual exclusion extension for the Yii framework",
 	"keywords": ["yii", "mutex"],
-	"type": "yii-extension",
+	"type": "yii2-extension",
 	"license": "BSD-3-Clause",
 	"support": {
 		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
diff --git a/extensions/smarty/composer.json b/extensions/smarty/composer.json
index b2d89a8..90a154f 100644
--- a/extensions/smarty/composer.json
+++ b/extensions/smarty/composer.json
@@ -2,7 +2,7 @@
 	"name": "yiisoft/yii2-smarty",
 	"description": "The Smarty integration for the Yii framework",
 	"keywords": ["yii", "smarty", "renderer"],
-	"type": "yii-extension",
+	"type": "yii2-extension",
 	"license": "BSD-3-Clause",
 	"support": {
 		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
@@ -13,7 +13,7 @@
 	},
 	"authors": [
 		{
-			"name": "Alenxader Makarov",
+			"name": "Alexander Makarov",
 			"email": "sam@rmcreative.ru"
 		}
 	],
diff --git a/extensions/twig/composer.json b/extensions/twig/composer.json
index 9ff0132..f67cbbd 100644
--- a/extensions/twig/composer.json
+++ b/extensions/twig/composer.json
@@ -2,7 +2,7 @@
 	"name": "yiisoft/yii2-twig",
 	"description": "The Twig integration for the Yii framework",
 	"keywords": ["yii", "twig", "renderer"],
-	"type": "yii-extension",
+	"type": "yii2-extension",
 	"license": "BSD-3-Clause",
 	"support": {
 		"issues": "https://github.com/yiisoft/yii2/issues?state=open",
@@ -13,7 +13,7 @@
 	},
 	"authors": [
 		{
-			"name": "Alenxader Makarov",
+			"name": "Alexander Makarov",
 			"email": "sam@rmcreative.ru"
 		}
 	],
diff --git a/framework/yii/BaseYii.php b/framework/yii/BaseYii.php
index 49499fb..ad93d42 100644
--- a/framework/yii/BaseYii.php
+++ b/framework/yii/BaseYii.php
@@ -335,8 +335,7 @@ class BaseYii
 
 		include($classFile);
 
-		if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) &&
-			(!function_exists('trait_exists') || !trait_exists($className, false))) {
+		if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
 			throw new UnknownClassException("Unable to find '$className' in file: $classFile");
 		}
 	}
diff --git a/framework/yii/base/Application.php b/framework/yii/base/Application.php
index 2bd3455..27dc37d 100644
--- a/framework/yii/base/Application.php
+++ b/framework/yii/base/Application.php
@@ -54,6 +54,13 @@ abstract class Application extends Module
 	 * @event ActionEvent an event raised after executing a controller action.
 	 */
 	const EVENT_AFTER_ACTION = 'afterAction';
+
+	/**
+	 * @var string the namespace that controller classes are in. If not set,
+	 * it will use the "app\controllers" namespace.
+	 */
+	public $controllerNamespace = 'app\\controllers';
+
 	/**
 	 * @var string the application name.
 	 */
@@ -121,7 +128,7 @@ abstract class Application extends Module
 	 * ]
 	 * ~~~
 	 */
-	public $extensions = array();
+	public $extensions = [];
 
 	/**
 	 * @var string Used to reserve memory for fatal error handler.
@@ -137,18 +144,8 @@ abstract class Application extends Module
 	public function __construct($config = [])
 	{
 		Yii::$app = $this;
-		if (!isset($config['id'])) {
-			throw new InvalidConfigException('The "id" configuration is required.');
-		}
-		if (isset($config['basePath'])) {
-			$this->setBasePath($config['basePath']);
-			unset($config['basePath']);
-		} else {
-			throw new InvalidConfigException('The "basePath" configuration is required.');
-		}
 
 		$this->preInit($config);
-
 		$this->registerErrorHandlers();
 		$this->registerCoreComponents();
 
@@ -158,10 +155,23 @@ abstract class Application extends Module
 	/**
 	 * Pre-initializes the application.
 	 * This method is called at the beginning of the application constructor.
+	 * It initializes several important application properties.
+	 * If you override this method, please make sure you call the parent implementation.
 	 * @param array $config the application configuration
+	 * @throws InvalidConfigException if either [[id]] or [[basePath]] configuration is missing.
 	 */
 	public function preInit(&$config)
 	{
+		if (!isset($config['id'])) {
+			throw new InvalidConfigException('The "id" configuration is required.');
+		}
+		if (isset($config['basePath'])) {
+			$this->setBasePath($config['basePath']);
+			unset($config['basePath']);
+		} else {
+			throw new InvalidConfigException('The "basePath" configuration is required.');
+		}
+
 		if (isset($config['vendorPath'])) {
 			$this->setVendorPath($config['vendorPath']);
 			unset($config['vendorPath']);
@@ -176,6 +186,7 @@ abstract class Application extends Module
 			// set "@runtime"
 			$this->getRuntimePath();
 		}
+
 		if (isset($config['timeZone'])) {
 			$this->setTimeZone($config['timeZone']);
 			unset($config['timeZone']);
@@ -185,6 +196,31 @@ abstract class Application extends Module
 	}
 
 	/**
+	 * @inheritdoc
+	 */
+	public function init()
+	{
+		parent::init();
+		$this->initExtensions($this->extensions);
+	}
+
+	/**
+	 * Initializes the extensions.
+	 * @param array $extensions the extensions to be initialized. Please refer to [[extensions]]
+	 * for the structure of the extension array.
+	 */
+	protected function initExtensions($extensions)
+	{
+		foreach ($extensions as $extension) {
+			if (isset($extension['bootstrap'])) {
+				/** @var Extension $class */
+				$class = $extension['bootstrap'];
+				$class::init();
+			}
+		}
+	}
+
+	/**
 	 * Loads components that are declared in [[preload]].
 	 * @throws InvalidConfigException if a component or module to be preloaded is unknown
 	 */
@@ -221,6 +257,18 @@ abstract class Application extends Module
 	}
 
 	/**
+	 * Sets the root directory of the applicaition and the @app alias.
+	 * This method can only be invoked at the beginning of the constructor.
+	 * @param string $path the root directory of the application.
+	 * @throws InvalidParamException if the directory does not exist.
+	 */
+	public function setBasePath($path)
+	{
+		parent::setBasePath($path);
+		Yii::setAlias('@app', $this->getBasePath());
+	}
+
+	/**
 	 * Runs the application.
 	 * This is the main entrance of an application.
 	 * @return integer the exit status (0 means normal, non-zero values mean abnormal)
diff --git a/framework/yii/base/Extension.php b/framework/yii/base/Extension.php
index dac9552..c25a043 100644
--- a/framework/yii/base/Extension.php
+++ b/framework/yii/base/Extension.php
@@ -8,11 +8,21 @@
 namespace yii\base;
 
 /**
+ * Extension is the base class that may be extended by individual extensions.
+ *
+ * Extension serves as the bootstrap class for extensions. When an extension
+ * is installed via composer, the [[init()]] method of its Extension class (if any)
+ * will be invoked during the application initialization stage.
+ *
  * @author Qiang Xue <qiang.xue@gmail.com>
  * @since 2.0
  */
 class Extension
 {
+	/**
+	 * Initializes the extension.
+	 * This method is invoked at the end of [[Application::init()]].
+	 */
 	public static function init()
 	{
 	}
diff --git a/framework/yii/base/Module.php b/framework/yii/base/Module.php
index ee3949b..fefdf1d 100644
--- a/framework/yii/base/Module.php
+++ b/framework/yii/base/Module.php
@@ -83,7 +83,6 @@ abstract class Module extends Component
 	 * it will use the "controllers" sub-namespace under the namespace of this module.
 	 * For example, if the namespace of this module is "foo\bar", then the default
 	 * controller namespace would be "foo\bar\controllers".
-	 * If the module is an application, it will default to "app\controllers".
 	 */
 	public $controllerNamespace;
 	/**
@@ -167,22 +166,20 @@ abstract class Module extends Component
 	/**
 	 * Initializes the module.
 	 * This method is called after the module is created and initialized with property values
-	 * given in configuration. The default implement will create a path alias using the module [[id]]
+	 * given in configuration. The default implementation will create a path alias using the module [[id]]
 	 * and then call [[preloadComponents()]] to load components that are declared in [[preload]].
+	 *
+	 * If you override this method, please make sure you call the parent implementation.
 	 */
 	public function init()
 	{
-		$this->preloadComponents();
 		if ($this->controllerNamespace === null) {
-			if ($this instanceof Application) {
-				$this->controllerNamespace = 'app\\controllers';
-			} else {
-				$class = get_class($this);
-				if (($pos = strrpos($class, '\\')) !== false) {
-					$this->controllerNamespace = substr($class, 0, $pos) . '\\controllers';
-				}
+			$class = get_class($this);
+			if (($pos = strrpos($class, '\\')) !== false) {
+				$this->controllerNamespace = substr($class, 0, $pos) . '\\controllers';
 			}
 		}
+		$this->preloadComponents();
 	}
 
 	/**
@@ -221,9 +218,6 @@ abstract class Module extends Component
 		$p = realpath($path);
 		if ($p !== false && is_dir($p)) {
 			$this->_basePath = $p;
-			if ($this instanceof Application) {
-				Yii::setAlias('@app', $p);
-			}
 		} else {
 			throw new InvalidParamException("The directory does not exist: $path");
 		}
diff --git a/framework/yii/base/View.php b/framework/yii/base/View.php
index 28e7b71..68b1094 100644
--- a/framework/yii/base/View.php
+++ b/framework/yii/base/View.php
@@ -540,7 +540,7 @@ class View extends Component
 
 	/**
 	 * Registers all files provided by an asset bundle including depending bundles files.
-	 * Removes a bundle from [[assetBundles]] once registered.
+	 * Removes a bundle from [[assetBundles]] once files are registered.
 	 * @param string $name name of the bundle to register
 	 */
 	private function registerAssetFiles($name)
@@ -552,7 +552,7 @@ class View extends Component
 		foreach($bundle->depends as $dep) {
 			$this->registerAssetFiles($dep);
 		}
-		$bundle->registerAssets($this);
+		$bundle->registerAssetFiles($this);
 		unset($this->assetBundles[$name]);
 	}
 
diff --git a/framework/yii/db/ActiveRecord.php b/framework/yii/db/ActiveRecord.php
index 3f158cf..806a6c1 100644
--- a/framework/yii/db/ActiveRecord.php
+++ b/framework/yii/db/ActiveRecord.php
@@ -456,7 +456,7 @@ class ActiveRecord extends Model
 	 * ~~~
 	 * public function getCountry()
 	 * {
-	 *     return $this->hasOne('Country', ['id' => 'country_id']);
+	 *     return $this->hasOne(Country::className(), ['id' => 'country_id']);
 	 * }
 	 * ~~~
 	 *
@@ -475,7 +475,7 @@ class ActiveRecord extends Model
 	public function hasOne($class, $link)
 	{
 		return new ActiveRelation([
-			'modelClass' => $this->getNamespacedClass($class),
+			'modelClass' => $class,
 			'primaryModel' => $this,
 			'link' => $link,
 			'multiple' => false,
@@ -496,7 +496,7 @@ class ActiveRecord extends Model
 	 * ~~~
 	 * public function getOrders()
 	 * {
-	 *     return $this->hasMany('Order', ['customer_id' => 'id']);
+	 *     return $this->hasMany(Order::className(), ['customer_id' => 'id']);
 	 * }
 	 * ~~~
 	 *
@@ -513,7 +513,7 @@ class ActiveRecord extends Model
 	public function hasMany($class, $link)
 	{
 		return new ActiveRelation([
-			'modelClass' => $this->getNamespacedClass($class),
+			'modelClass' => $class,
 			'primaryModel' => $this,
 			'link' => $link,
 			'multiple' => true,
@@ -1439,24 +1439,6 @@ class ActiveRecord extends Model
 	}
 
 	/**
-	 * Changes the given class name into a namespaced one.
-	 * If the given class name is already namespaced, no change will be made.
-	 * Otherwise, the class name will be changed to use the same namespace as
-	 * the current AR class.
-	 * @param string $class the class name to be namespaced
-	 * @return string the namespaced class name
-	 */
-	protected static function getNamespacedClass($class)
-	{
-		if (strpos($class, '\\') === false) {
-			$reflector = new \ReflectionClass(static::className());
-			return $reflector->getNamespaceName() . '\\' . $class;
-		} else {
-			return $class;
-		}
-	}
-
-	/**
 	 * @param array $link
 	 * @param ActiveRecord $foreignModel
 	 * @param ActiveRecord $primaryModel
diff --git a/framework/yii/debug/views/default/index.php b/framework/yii/debug/views/default/index.php
index 325267d..c01230c 100644
--- a/framework/yii/debug/views/default/index.php
+++ b/framework/yii/debug/views/default/index.php
@@ -32,11 +32,11 @@ $this->title = 'Yii Debugger';
 				<tbody>
 					<?php foreach ($manifest as $tag => $data): ?>
 					<tr>
-						<td><?=Html::a($tag, ['view', 'tag' => $tag]); ?></td>
-						<td><?=date('Y-m-d h:i:sa', $data['time']); ?></td>
-						<td><?=$data['ip']; ?></td>
-						<td><?=$data['method']; ?></td>
-						<td><?=$data['url']; ?></td>
+						<td><?= Html::a($tag, ['view', 'tag' => $tag]) ?></td>
+						<td><?= date('Y-m-d h:i:sa', $data['time']) ?></td>
+						<td><?= $data['ip'] ?></td>
+						<td><?= $data['method'] ?></td>
+						<td><?= $data['url'] ?></td>
 					</tr>
 					<?php endforeach; ?>
 				</tbody>
diff --git a/framework/yii/debug/views/default/toolbar.php b/framework/yii/debug/views/default/toolbar.php
index 40d33cf..bc76a67 100644
--- a/framework/yii/debug/views/default/toolbar.php
+++ b/framework/yii/debug/views/default/toolbar.php
@@ -26,13 +26,13 @@ $url = $panels['request']->getUrl();
 ?>
 <div id="yii-debug-toolbar">
 	<?php foreach ($panels as $panel): ?>
-	<?=$panel->getSummary(); ?>
+	<?= $panel->getSummary() ?>
 	<?php endforeach; ?>
-	<span class="yii-debug-toolbar-toggler" onclick="<?=$minJs; ?>">›</span>
+	<span class="yii-debug-toolbar-toggler" onclick="<?= $minJs ?>">›</span>
 </div>
 <div id="yii-debug-toolbar-min">
-	<a href="<?=$url; ?>" title="Open Yii Debugger" id="yii-debug-toolbar-logo">
-		<img width="29" height="30" alt="" src="<?=ConfigPanel::getYiiLogo(); ?>">
+	<a href="<?= $url ?>" title="Open Yii Debugger" id="yii-debug-toolbar-logo">
+		<img width="29" height="30" alt="" src="<?= ConfigPanel::getYiiLogo() ?>">
 	</a>
-	<span class="yii-debug-toolbar-toggler" onclick="<?=$maxJs; ?>">‹</span>
+	<span class="yii-debug-toolbar-toggler" onclick="<?= $maxJs ?>">‹</span>
 </div>
diff --git a/framework/yii/debug/views/default/view.php b/framework/yii/debug/views/default/view.php
index 8fe7199..338bef7 100644
--- a/framework/yii/debug/views/default/view.php
+++ b/framework/yii/debug/views/default/view.php
@@ -21,7 +21,7 @@ $this->title = 'Yii Debugger';
 			Yii Debugger
 		</div>
 		<?php foreach ($panels as $panel): ?>
-			<?=$panel->getSummary(); ?>
+			<?= $panel->getSummary() ?>
 		<?php endforeach; ?>
 	</div>
 
@@ -71,7 +71,7 @@ $this->title = 'Yii Debugger';
 						echo ' at ' . date('Y-m-d h:i:s a', $summary['time']) . ' by ' . $summary['ip'];
 					?>
 				</div>
-				<?=$activePanel->getDetail(); ?>
+				<?= $activePanel->getDetail() ?>
 			</div>
 		</div>
 	</div>
diff --git a/framework/yii/debug/views/layouts/main.php b/framework/yii/debug/views/layouts/main.php
index f22842d..c16ac4f 100644
--- a/framework/yii/debug/views/layouts/main.php
+++ b/framework/yii/debug/views/layouts/main.php
@@ -11,12 +11,12 @@ yii\debug\DebugAsset::register($this);
 <html>
 <?php $this->beginPage(); ?>
 <head>
-	<title><?=Html::encode($this->title); ?></title>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
 <?php $this->beginBody(); ?>
-<?=$content; ?>
+<?= $content ?>
 <?php $this->endBody(); ?>
 </body>
 <?php $this->endPage(); ?>
diff --git a/framework/yii/gii/generators/controller/templates/controller.php b/framework/yii/gii/generators/controller/templates/controller.php
index 9101c57..9d0d92c 100644
--- a/framework/yii/gii/generators/controller/templates/controller.php
+++ b/framework/yii/gii/generators/controller/templates/controller.php
@@ -13,15 +13,15 @@ echo "<?php\n";
 ?>
 
 <?php if (!empty($generator->ns)): ?>
-namespace <?=$generator->ns; ?>;
+namespace <?= $generator->ns ?>;
 <?php endif; ?>
 
-class <?=$generator->getControllerClass(); ?> extends <?='\\' . trim($generator->baseClass, '\\') . "\n"; ?>
+class <?= $generator->getControllerClass() ?> extends <?= '\\' . trim($generator->baseClass, '\\') . "\n" ?>
 {
 <?php foreach($generator->getActionIDs() as $action): ?>
-	public function action<?=Inflector::id2camel($action); ?>()
+	public function action<?= Inflector::id2camel($action) ?>()
 	{
-		return $this->render('<?=$action; ?>');
+		return $this->render('<?= $action ?>');
 	}
 
 <?php endforeach; ?>
diff --git a/framework/yii/gii/generators/controller/templates/view.php b/framework/yii/gii/generators/controller/templates/view.php
index 6441ecc..8a46f75 100644
--- a/framework/yii/gii/generators/controller/templates/view.php
+++ b/framework/yii/gii/generators/controller/templates/view.php
@@ -12,11 +12,11 @@ echo "<?php\n";
 /**
  * @var yii\base\View $this
  */
-<?="?>"; ?>
+<?= "?>" ?>
 
-<h1><?=$generator->getControllerID() . '/' . $action; ?></h1>
+<h1><?= $generator->getControllerID() . '/' . $action ?></h1>
 
 <p>
 	You may change the content of this page by modifying
-	the file <code><?='<?php'; ?> echo __FILE__; ?></code>.
+	the file <code><?= '<?php' ?> echo __FILE__; ?></code>.
 </p>
diff --git a/framework/yii/gii/generators/crud/Generator.php b/framework/yii/gii/generators/crud/Generator.php
index ae59102..671dfbd 100644
--- a/framework/yii/gii/generators/crud/Generator.php
+++ b/framework/yii/gii/generators/crud/Generator.php
@@ -190,9 +190,9 @@ class Generator extends \yii\gii\Generator
 		}
 		$column = $tableSchema->columns[$attribute];
 		if ($column->phpType === 'boolean') {
-			return "\$form->field(\$model, '$attribute')->checkbox();";
+			return "\$form->field(\$model, '$attribute')->checkbox()";
 		} elseif ($column->type === 'text') {
-			return "\$form->field(\$model, '$attribute')->textarea(['rows' => 6]);";
+			return "\$form->field(\$model, '$attribute')->textarea(['rows' => 6])";
 		} else {
 			if (preg_match('/^(password|pass|passwd|passcode)$/i', $column->name)) {
 				$input = 'passwordInput';
@@ -200,9 +200,9 @@ class Generator extends \yii\gii\Generator
 				$input = 'textInput';
 			}
 			if ($column->phpType !== 'string' || $column->size === null) {
-				return "\$form->field(\$model, '$attribute')->$input();";
+				return "\$form->field(\$model, '$attribute')->$input()";
 			} else {
-				return "\$form->field(\$model, '$attribute')->$input(['maxlength' => $column->size]);";
+				return "\$form->field(\$model, '$attribute')->$input(['maxlength' => $column->size])";
 			}
 		}
 	}
@@ -216,9 +216,9 @@ class Generator extends \yii\gii\Generator
 		$tableSchema = $this->getTableSchema();
 		$column = $tableSchema->columns[$attribute];
 		if ($column->phpType === 'boolean') {
-			return "\$form->field(\$model, '$attribute')->checkbox();";
+			return "\$form->field(\$model, '$attribute')->checkbox()";
 		} else {
-			return "\$form->field(\$model, '$attribute');";
+			return "\$form->field(\$model, '$attribute')";
 		}
 	}
 
diff --git a/framework/yii/gii/generators/crud/templates/controller.php b/framework/yii/gii/generators/crud/templates/controller.php
index 0aaead6..d1921de 100644
--- a/framework/yii/gii/generators/crud/templates/controller.php
+++ b/framework/yii/gii/generators/crud/templates/controller.php
@@ -21,19 +21,19 @@ $actionParamComments = $generator->generateActionParamComments();
 echo "<?php\n";
 ?>
 
-namespace <?=StringHelper::dirname(ltrim($generator->controllerClass, '\\')); ?>;
+namespace <?= StringHelper::dirname(ltrim($generator->controllerClass, '\\')) ?>;
 
-use <?=ltrim($generator->modelClass, '\\'); ?>;
-use <?=ltrim($generator->searchModelClass, '\\'); ?>;
+use <?= ltrim($generator->modelClass, '\\') ?>;
+use <?= ltrim($generator->searchModelClass, '\\') ?>;
 use yii\data\ActiveDataProvider;
-use <?=ltrim($generator->baseControllerClass, '\\'); ?>;
+use <?= ltrim($generator->baseControllerClass, '\\') ?>;
 use yii\web\HttpException;
 use yii\web\VerbFilter;
 
 /**
- * <?=$controllerClass; ?> implements the CRUD actions for <?=$modelClass; ?> model.
+ * <?= $controllerClass ?> implements the CRUD actions for <?= $modelClass ?> model.
  */
-class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->baseControllerClass) . "\n"; ?>
+class <?= $controllerClass ?> extends <?= StringHelper::basename($generator->baseControllerClass) . "\n" ?>
 {
 	public function behaviors()
 	{
@@ -48,12 +48,12 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
 	}
 
 	/**
-	 * Lists all <?=$modelClass; ?> models.
+	 * Lists all <?= $modelClass ?> models.
 	 * @return mixed
 	 */
 	public function actionIndex()
 	{
-		$searchModel = new <?=$searchModelClass; ?>;
+		$searchModel = new <?= $searchModelClass ?>;
 		$dataProvider = $searchModel->search($_GET);
 
 		return $this->render('index', [
@@ -63,28 +63,28 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
 	}
 
 	/**
-	 * Displays a single <?=$modelClass; ?> model.
-	 * <?=implode("\n\t * ", $actionParamComments) . "\n"; ?>
+	 * Displays a single <?= $modelClass ?> model.
+	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?>
 	 * @return mixed
 	 */
-	public function actionView(<?=$actionParams; ?>)
+	public function actionView(<?= $actionParams ?>)
 	{
 		return $this->render('view', [
-			'model' => $this->findModel(<?=$actionParams; ?>),
+			'model' => $this->findModel(<?= $actionParams ?>),
 		]);
 	}
 
 	/**
-	 * Creates a new <?=$modelClass; ?> model.
+	 * Creates a new <?= $modelClass ?> model.
 	 * If creation is successful, the browser will be redirected to the 'view' page.
 	 * @return mixed
 	 */
 	public function actionCreate()
 	{
-		$model = new <?=$modelClass; ?>;
+		$model = new <?= $modelClass ?>;
 
 		if ($model->load($_POST) && $model->save()) {
-			return $this->redirect(['view', <?=$urlParams; ?>]);
+			return $this->redirect(['view', <?= $urlParams ?>]);
 		} else {
 			return $this->render('create', [
 				'model' => $model,
@@ -93,17 +93,17 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
 	}
 
 	/**
-	 * Updates an existing <?=$modelClass; ?> model.
+	 * Updates an existing <?= $modelClass ?> model.
 	 * If update is successful, the browser will be redirected to the 'view' page.
-	 * <?=implode("\n\t * ", $actionParamComments) . "\n"; ?>
+	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?>
 	 * @return mixed
 	 */
-	public function actionUpdate(<?=$actionParams; ?>)
+	public function actionUpdate(<?= $actionParams ?>)
 	{
-		$model = $this->findModel(<?=$actionParams; ?>);
+		$model = $this->findModel(<?= $actionParams ?>);
 
 		if ($model->load($_POST) && $model->save()) {
-			return $this->redirect(['view', <?=$urlParams; ?>]);
+			return $this->redirect(['view', <?= $urlParams ?>]);
 		} else {
 			return $this->render('update', [
 				'model' => $model,
@@ -112,25 +112,25 @@ class <?=$controllerClass; ?> extends <?=StringHelper::basename($generator->base
 	}
 
 	/**
-	 * Deletes an existing <?=$modelClass; ?> model.
+	 * Deletes an existing <?= $modelClass ?> model.
 	 * If deletion is successful, the browser will be redirected to the 'index' page.
-	 * <?=implode("\n\t * ", $actionParamComments) . "\n"; ?>
+	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?>
 	 * @return mixed
 	 */
-	public function actionDelete(<?=$actionParams; ?>)
+	public function actionDelete(<?= $actionParams ?>)
 	{
-		$this->findModel(<?=$actionParams; ?>)->delete();
+		$this->findModel(<?= $actionParams ?>)->delete();
 		return $this->redirect(['index']);
 	}
 
 	/**
-	 * Finds the <?=$modelClass; ?> model based on its primary key value.
+	 * Finds the <?= $modelClass ?> model based on its primary key value.
 	 * If the model is not found, a 404 HTTP exception will be thrown.
-	 * <?=implode("\n\t * ", $actionParamComments) . "\n"; ?>
-	 * @return <?=$modelClass; ?> the loaded model
+	 * <?= implode("\n\t * ", $actionParamComments) . "\n" ?>
+	 * @return <?= $modelClass ?> the loaded model
 	 * @throws HttpException if the model cannot be found
 	 */
-	protected function findModel(<?=$actionParams; ?>)
+	protected function findModel(<?= $actionParams ?>)
 	{
 <?php
 if (count($pks) === 1) {
@@ -143,7 +143,7 @@ if (count($pks) === 1) {
 	$condition = '[' . implode(', ', $condition) . ']';
 }
 ?>
-		if (($model = <?=$modelClass; ?>::find(<?=$condition; ?>)) !== null) {
+		if (($model = <?= $modelClass ?>::find(<?= $condition ?>)) !== null) {
 			return $model;
 		} else {
 			throw new HttpException(404, 'The requested page does not exist.');
diff --git a/framework/yii/gii/generators/crud/templates/search.php b/framework/yii/gii/generators/crud/templates/search.php
index cd8e156..ef8c0ca 100644
--- a/framework/yii/gii/generators/crud/templates/search.php
+++ b/framework/yii/gii/generators/crud/templates/search.php
@@ -19,23 +19,23 @@ $searchConditions = $generator->generateSearchConditions();
 echo "<?php\n";
 ?>
 
-namespace <?=StringHelper::dirname(ltrim($generator->searchModelClass, '\\')); ?>;
+namespace <?= StringHelper::dirname(ltrim($generator->searchModelClass, '\\')) ?>;
 
 use yii\base\Model;
 use yii\data\ActiveDataProvider;
-use <?=ltrim($generator->modelClass, '\\'); ?>;
+use <?= ltrim($generator->modelClass, '\\') ?>;
 
 /**
- * <?=$searchModelClass; ?> represents the model behind the search form about <?=$modelClass; ?>.
+ * <?= $searchModelClass ?> represents the model behind the search form about <?= $modelClass ?>.
  */
-class <?=$searchModelClass; ?> extends Model
+class <?= $searchModelClass ?> extends Model
 {
-	public $<?=implode(";\n\tpublic $", $searchAttributes); ?>;
+	public $<?= implode(";\n\tpublic $", $searchAttributes) ?>;
 
 	public function rules()
 	{
 		return [
-			<?=implode(",\n\t\t\t", $rules); ?>,
+			<?= implode(",\n\t\t\t", $rules) ?>,
 		];
 	}
 
@@ -46,14 +46,14 @@ class <?=$searchModelClass; ?> extends Model
 	{
 		return [
 <?php foreach ($labels as $name => $label): ?>
-			<?="'$name' => '" . addslashes($label) . "',\n"; ?>
+			<?= "'$name' => '" . addslashes($label) . "',\n" ?>
 <?php endforeach; ?>
 		];
 	}
 
 	public function search($params)
 	{
-		$query = <?=$modelClass; ?>::find();
+		$query = <?= $modelClass ?>::find();
 		$dataProvider = new ActiveDataProvider([
 			'query' => $query,
 		]);
@@ -62,7 +62,7 @@ class <?=$searchModelClass; ?> extends Model
 			return $dataProvider;
 		}
 
-		<?=implode("\n\t\t", $searchConditions); ?>
+		<?= implode("\n\t\t", $searchConditions) ?>
 
 		return $dataProvider;
 	}
diff --git a/framework/yii/gii/generators/crud/templates/views/_form.php b/framework/yii/gii/generators/crud/templates/views/_form.php
index 024006e..5e31364 100644
--- a/framework/yii/gii/generators/crud/templates/views/_form.php
+++ b/framework/yii/gii/generators/crud/templates/views/_form.php
@@ -23,22 +23,22 @@ use yii\widgets\ActiveForm;
 
 /**
  * @var yii\base\View $this
- * @var <?=ltrim($generator->modelClass, '\\'); ?> $model
+ * @var <?= ltrim($generator->modelClass, '\\') ?> $model
  * @var yii\widgets\ActiveForm $form
  */
 ?>
 
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-form">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-form">
 
-	<?='<?php'; ?> $form = ActiveForm::begin(); ?>
+	<?= "<?php " ?>$form = ActiveForm::begin(); ?>
 
 <?php foreach ($safeAttributes as $attribute) {
-	echo "\t\t<?=" . $generator->generateActiveField($attribute) . " ?>\n\n";
+	echo "\t\t<?= " . $generator->generateActiveField($attribute) . " ?>\n\n";
 } ?>
 		<div class="form-group">
-			<?='<?php'; ?> echo Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?>
+			<?= "<?= " ?>Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
 		</div>
 
-	<?='<?php'; ?> ActiveForm::end(); ?>
+	<?= "<?php " ?>ActiveForm::end(); ?>
 
 </div>
diff --git a/framework/yii/gii/generators/crud/templates/views/_search.php b/framework/yii/gii/generators/crud/templates/views/_search.php
index 14bd1af..ff9a0dd 100644
--- a/framework/yii/gii/generators/crud/templates/views/_search.php
+++ b/framework/yii/gii/generators/crud/templates/views/_search.php
@@ -16,14 +16,14 @@ use yii\widgets\ActiveForm;
 
 /**
  * @var yii\base\View $this
- * @var <?=ltrim($generator->searchModelClass, '\\'); ?> $model
+ * @var <?= ltrim($generator->searchModelClass, '\\') ?> $model
  * @var yii\widgets\ActiveForm $form
  */
 ?>
 
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-search">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-search">
 
-	<?='<?php'; ?> $form = ActiveForm::begin([
+	<?= "<?php " ?>$form = ActiveForm::begin([
 		'action' => ['index'],
 		'method' => 'get',
 	]); ?>
@@ -32,17 +32,17 @@ use yii\widgets\ActiveForm;
 $count = 0;
 foreach ($generator->getTableSchema()->getColumnNames() as $attribute) {
 	if (++$count < 6) {
-		echo "\t\t<?=" . $generator->generateActiveSearchField($attribute) . " ?>\n";
+		echo "\t\t<?= " . $generator->generateActiveSearchField($attribute) . " ?>\n\n";
 	} else {
-		echo "\t\t<?php // echo " . $generator->generateActiveSearchField($attribute) . " ?>\n";
+		echo "\t\t<?= // " . $generator->generateActiveSearchField($attribute) . " ?>\n\n";
 	}
 }
 ?>
 		<div class="form-group">
-			<?='<?php'; ?> echo Html::submitButton('Search', ['class' => 'btn btn-primary']); ?>
-			<?='<?php'; ?> echo Html::resetButton('Reset', ['class' => 'btn btn-default']); ?>
+			<?= "<?= " ?>Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+			<?= "<?= " ?>Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
 		</div>
 
-	<?='<?php'; ?> ActiveForm::end(); ?>
+	<?= "<?php " ?>ActiveForm::end(); ?>
 
 </div>
diff --git a/framework/yii/gii/generators/crud/templates/views/create.php b/framework/yii/gii/generators/crud/templates/views/create.php
index 63a4eef..02c30bf 100644
--- a/framework/yii/gii/generators/crud/templates/views/create.php
+++ b/framework/yii/gii/generators/crud/templates/views/create.php
@@ -15,18 +15,18 @@ use yii\helpers\Html;
 
 /**
  * @var yii\base\View $this
- * @var <?=ltrim($generator->modelClass, '\\'); ?> $model
+ * @var <?= ltrim($generator->modelClass, '\\') ?> $model
  */
 
-$this->title = 'Create <?=Inflector::camel2words(StringHelper::basename($generator->modelClass)); ?>';
-$this->params['breadcrumbs'][] = ['label' => '<?=Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))); ?>', 'url' => ['index']];
+$this->title = 'Create <?= Inflector::camel2words(StringHelper::basename($generator->modelClass)) ?>';
+$this->params['breadcrumbs'][] = ['label' => '<?= Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>', 'url' => ['index']];
 $this->params['breadcrumbs'][] = $this->title;
 ?>
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-create">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-create">
 
-	<h1><?="<?php"; ?> echo Html::encode($this->title); ?></h1>
+	<h1><?= "<?= " ?>Html::encode($this->title) ?></h1>
 
-	<?="<?php"; ?> echo $this->render('_form', [
+	<?= "<?php " ?>echo $this->render('_form', [
 		'model' => $model,
 	]); ?>
 
diff --git a/framework/yii/gii/generators/crud/templates/views/index.php b/framework/yii/gii/generators/crud/templates/views/index.php
index c440e34..d3cebcc 100644
--- a/framework/yii/gii/generators/crud/templates/views/index.php
+++ b/framework/yii/gii/generators/crud/templates/views/index.php
@@ -15,29 +15,29 @@ echo "<?php\n";
 ?>
 
 use yii\helpers\Html;
-use <?=$generator->indexWidgetType === 'grid' ? 'yii\grid\GridView' : 'yii\widgets\ListView'; ?>;
+use <?= $generator->indexWidgetType === 'grid' ? "yii\grid\GridView" : "yii\widgets\ListView" ?>;
 
 /**
  * @var yii\base\View $this
  * @var yii\data\ActiveDataProvider $dataProvider
- * @var <?=ltrim($generator->searchModelClass, '\\'); ?> $searchModel
+ * @var <?= ltrim($generator->searchModelClass, '\\') ?> $searchModel
  */
 
-$this->title = '<?=Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))); ?>';
+$this->title = '<?= Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>';
 $this->params['breadcrumbs'][] = $this->title;
 ?>
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-index">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-index">
 
-	<h1><?="<?php"; ?> echo Html::encode($this->title); ?></h1>
+	<h1><?= "<?= " ?>Html::encode($this->title) ?></h1>
 
-	<?='<?php' . ($generator->indexWidgetType === 'grid' ? ' //' : ''); ?> echo $this->render('_search', ['model' => $searchModel]); ?>
+	<?= "<?php " . ($generator->indexWidgetType === 'grid' ? "// " : "") ?>echo $this->render('_search', ['model' => $searchModel]); ?>
 
 	<p>
-		<?='<?php'; ?> echo Html::a('Create <?=StringHelper::basename($generator->modelClass); ?>', ['create'], ['class' => 'btn btn-success']); ?>
+		<?= "<?= " ?>Html::a('Create <?= StringHelper::basename($generator->modelClass) ?>', ['create'], ['class' => 'btn btn-success']) ?>
 	</p>
 
 <?php if ($generator->indexWidgetType === 'grid'): ?>
-	<?="<?php"; ?> echo GridView::widget([
+	<?= "<?php " ?>echo GridView::widget([
 		'dataProvider' => $dataProvider,
 		'filterModel' => $searchModel,
 		'columns' => [
@@ -48,9 +48,9 @@ $count = 0;
 foreach ($generator->getTableSchema()->columns as $column) {
 	$format = $generator->generateColumnFormat($column);
 	if (++$count < 6) {
-		echo "\t\t\t'" . $column->name . ($format === 'text' ? '' : ':' . $format) . "',\n";
+		echo "\t\t\t'" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
 	} else {
-		echo "\t\t\t// '" . $column->name . ($format === 'text' ? '' : ':' . $format) . "',\n";
+		echo "\t\t\t// '" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
 	}
 }
 ?>
@@ -59,11 +59,11 @@ foreach ($generator->getTableSchema()->columns as $column) {
 		],
 	]); ?>
 <?php else: ?>
-	<?="<?php"; ?> echo ListView::widget([
+	<?= "<?php " ?>echo ListView::widget([
 		'dataProvider' => $dataProvider,
 		'itemOptions' => ['class' => 'item'],
 		'itemView' => function ($model, $key, $index, $widget) {
-			return Html::a(Html::encode($model-><?=$nameAttribute; ?>), ['view', <?=$urlParams; ?>]);
+			return Html::a(Html::encode($model-><?= $nameAttribute ?>), ['view', <?= $urlParams ?>]);
 		},
 	]); ?>
 <?php endif; ?>
diff --git a/framework/yii/gii/generators/crud/templates/views/update.php b/framework/yii/gii/generators/crud/templates/views/update.php
index 0b881ec..903a880 100644
--- a/framework/yii/gii/generators/crud/templates/views/update.php
+++ b/framework/yii/gii/generators/crud/templates/views/update.php
@@ -17,19 +17,19 @@ use yii\helpers\Html;
 
 /**
  * @var yii\base\View $this
- * @var <?=ltrim($generator->modelClass, '\\'); ?> $model
+ * @var <?= ltrim($generator->modelClass, '\\') ?> $model
  */
 
-$this->title = 'Update <?=Inflector::camel2words(StringHelper::basename($generator->modelClass)); ?>: ' . $model-><?=$generator->getNameAttribute(); ?>;
-$this->params['breadcrumbs'][] = ['label' => '<?=Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))); ?>', 'url' => ['index']];
-$this->params['breadcrumbs'][] = ['label' => $model-><?=$generator->getNameAttribute(); ?>, 'url' => ['view', <?=$urlParams; ?>]];
+$this->title = 'Update <?= Inflector::camel2words(StringHelper::basename($generator->modelClass)) ?>: ' . $model-><?= $generator->getNameAttribute() ?>;
+$this->params['breadcrumbs'][] = ['label' => '<?= Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model-><?= $generator->getNameAttribute() ?>, 'url' => ['view', <?= $urlParams ?>]];
 $this->params['breadcrumbs'][] = 'Update';
 ?>
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-update">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-update">
 
-	<h1><?="<?php"; ?> echo Html::encode($this->title); ?></h1>
+	<h1><?= "<?= " ?>Html::encode($this->title) ?></h1>
 
-	<?="<?php"; ?> echo $this->render('_form', [
+	<?= "<?php " ?>echo $this->render('_form', [
 		'model' => $model,
 	]); ?>
 
diff --git a/framework/yii/gii/generators/crud/templates/views/view.php b/framework/yii/gii/generators/crud/templates/views/view.php
index 9e8f28d..a15a7b6 100644
--- a/framework/yii/gii/generators/crud/templates/views/view.php
+++ b/framework/yii/gii/generators/crud/templates/views/view.php
@@ -18,33 +18,33 @@ use yii\widgets\DetailView;
 
 /**
  * @var yii\base\View $this
- * @var <?=ltrim($generator->modelClass, '\\'); ?> $model
+ * @var <?= ltrim($generator->modelClass, '\\') ?> $model
  */
 
-$this->title = $model-><?=$generator->getNameAttribute(); ?>;
-$this->params['breadcrumbs'][] = ['label' => '<?=Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))); ?>', 'url' => ['index']];
+$this->title = $model-><?= $generator->getNameAttribute() ?>;
+$this->params['breadcrumbs'][] = ['label' => '<?= Inflector::pluralize(Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>', 'url' => ['index']];
 $this->params['breadcrumbs'][] = $this->title;
 ?>
-<div class="<?=Inflector::camel2id(StringHelper::basename($generator->modelClass)); ?>-view">
+<div class="<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-view">
 
-	<h1><?="<?php"; ?> echo Html::encode($this->title); ?></h1>
+	<h1><?= "<?= " ?>Html::encode($this->title) ?></h1>
 
 	<p>
-		<?='<?php'; ?> echo Html::a('Update', ['update', <?=$urlParams; ?>], ['class' => 'btn btn-primary']); ?>
-		<?='<?php'; ?> echo Html::a('Delete', ['delete', <?=$urlParams; ?>], [
+		<?= "<?= " ?>Html::a('Update', ['update', <?= $urlParams ?>], ['class' => 'btn btn-primary']) ?>
+		<?= "<?php " ?>echo Html::a('Delete', ['delete', <?= $urlParams ?>], [
 			'class' => 'btn btn-danger',
 			'data-confirm' => Yii::t('app', 'Are you sure to delete this item?'),
 			'data-method' => 'post',
 		]); ?>
 	</p>
 
-	<?='<?php'; ?> echo DetailView::widget([
+	<?= "<?php " ?>echo DetailView::widget([
 		'model' => $model,
 		'attributes' => [
 <?php
 foreach ($generator->getTableSchema()->columns as $column) {
 	$format = $generator->generateColumnFormat($column);
-	echo "\t\t\t'" . $column->name . ($format === 'text' ? '' : ':' . $format) . "',\n";
+	echo "\t\t\t'" . $column->name . ($format === 'text' ? "" : ":" . $format) . "',\n";
 }
 ?>
 		],
diff --git a/framework/yii/gii/generators/form/templates/action.php b/framework/yii/gii/generators/form/templates/action.php
index 184c60f..6b084f4 100644
--- a/framework/yii/gii/generators/form/templates/action.php
+++ b/framework/yii/gii/generators/form/templates/action.php
@@ -12,9 +12,9 @@ use yii\helpers\Inflector;
 echo "<?php\n";
 ?>
 
-public function action<?=Inflector::id2camel(trim(basename($generator->viewName), '_')); ?>()
+public function action<?= Inflector::id2camel(trim(basename($generator->viewName), '_')) ?>()
 {
-	$model = new <?=$generator->modelClass; ?><?=empty($generator->scenarioName) ? '' : "(['scenario' => '{$generator->scenarioName}'])"; ?>;
+	$model = new <?= $generator->modelClass ?><?= empty($generator->scenarioName) ? '' : "(['scenario' => '{$generator->scenarioName}'])" ?>;
 
 	if ($model->load($_POST)) {
 		if($model->validate()) {
@@ -22,7 +22,7 @@ public function action<?=Inflector::id2camel(trim(basename($generator->viewName)
 			return;
 		}
 	}
-	return $this->render('<?=$generator->viewName; ?>', [
+	return $this->render('<?= $generator->viewName ?>', [
 		'model' => $model,
 	]);
 }
diff --git a/framework/yii/gii/generators/form/templates/form.php b/framework/yii/gii/generators/form/templates/form.php
index f365ebc..a448687 100644
--- a/framework/yii/gii/generators/form/templates/form.php
+++ b/framework/yii/gii/generators/form/templates/form.php
@@ -14,22 +14,22 @@ use yii\widgets\ActiveForm;
 
 /**
  * @var yii\base\View $this
- * @var <?=$generator->modelClass; ?> $model
+ * @var <?= $generator->modelClass ?> $model
  * @var ActiveForm $form
  */
-<?="?>"; ?>
+<?= "?>" ?>
 
-<div class="<?=str_replace('/', '-', trim($generator->viewName, '_')); ?>">
+<div class="<?= str_replace('/', '-', trim($generator->viewName, '_')) ?>">
 
-	<?='<?php'; ?> $form = ActiveForm::begin(); ?>
+	<?= '<?php' ?> $form = ActiveForm::begin(); ?>
 
 	<?php foreach ($generator->getModelAttributes() as $attribute): ?>
-	<?='<?php'; ?> echo $form->field($model, '<?=$attribute; ?>'); ?>
+	<?= '<?php' ?> echo $form->field($model, '<?= $attribute ?>'); ?>
 	<?php endforeach; ?>
 
 		<div class="form-group">
-			<?='<?php'; ?> echo Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
+			<?= '<?php' ?> echo Html::submitButton('Submit', ['class' => 'btn btn-primary']); ?>
 		</div>
-	<?='<?php'; ?> ActiveForm::end(); ?>
+	<?= '<?php' ?> ActiveForm::end(); ?>
 
-</div><!-- <?=str_replace('/', '-', trim($generator->viewName, '-')); ?> -->
+</div><!-- <?= str_replace('/', '-', trim($generator->viewName, '-')) ?> -->
diff --git a/framework/yii/gii/generators/model/templates/model.php b/framework/yii/gii/generators/model/templates/model.php
index b5fc4ad..b445425 100644
--- a/framework/yii/gii/generators/model/templates/model.php
+++ b/framework/yii/gii/generators/model/templates/model.php
@@ -15,29 +15,29 @@
 echo "<?php\n";
 ?>
 
-namespace <?=$generator->ns; ?>;
+namespace <?= $generator->ns ?>;
 
 /**
- * This is the model class for table "<?=$tableName; ?>".
+ * This is the model class for table "<?= $tableName ?>".
  *
 <?php foreach ($tableSchema->columns as $column): ?>
- * @property <?="{$column->phpType} \${$column->name}\n"; ?>
+ * @property <?= "{$column->phpType} \${$column->name}\n" ?>
 <?php endforeach; ?>
 <?php if (!empty($relations)): ?>
  *
 <?php foreach ($relations as $name => $relation): ?>
- * @property <?=$relation[1] . ($relation[2] ? '[]' : '') . ' $' . lcfirst($name) . "\n"; ?>
+ * @property <?= $relation[1] . ($relation[2] ? '[]' : '') . ' $' . lcfirst($name) . "\n" ?>
 <?php endforeach; ?>
 <?php endif; ?>
  */
-class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "\n"; ?>
+class <?= $className ?> extends <?= '\\' . ltrim($generator->baseClass, '\\') . "\n" ?>
 {
 	/**
 	 * @inheritdoc
 	 */
 	public static function tableName()
 	{
-		return '<?=$tableName; ?>';
+		return '<?= $tableName ?>';
 	}
 
 	/**
@@ -45,7 +45,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
 	 */
 	public function rules()
 	{
-		return [<?="\n\t\t\t" . implode(",\n\t\t\t", $rules) . "\n\t\t"; ?>];
+		return [<?= "\n\t\t\t" . implode(",\n\t\t\t", $rules) . "\n\t\t" ?>];
 	}
 
 	/**
@@ -55,7 +55,7 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
 	{
 		return [
 <?php foreach ($labels as $name => $label): ?>
-			<?="'$name' => '" . addslashes($label) . "',\n"; ?>
+			<?= "'$name' => '" . addslashes($label) . "',\n" ?>
 <?php endforeach; ?>
 		];
 	}
@@ -64,9 +64,9 @@ class <?=$className; ?> extends <?='\\' . ltrim($generator->baseClass, '\\') . "
 	/**
 	 * @return \yii\db\ActiveRelation
 	 */
-	public function get<?=$name; ?>()
+	public function get<?= $name ?>()
 	{
-		<?=$relation[0] . "\n"; ?>
+		<?= $relation[0] . "\n" ?>
 	}
 <?php endforeach; ?>
 }
diff --git a/framework/yii/gii/generators/module/templates/controller.php b/framework/yii/gii/generators/module/templates/controller.php
index d5e92d6..2b24e0e 100644
--- a/framework/yii/gii/generators/module/templates/controller.php
+++ b/framework/yii/gii/generators/module/templates/controller.php
@@ -8,7 +8,7 @@
 echo "<?php\n";
 ?>
 
-namespace <?=$generator->getControllerNamespace(); ?>;
+namespace <?= $generator->getControllerNamespace() ?>;
 
 use yii\web\Controller;
 
diff --git a/framework/yii/gii/generators/module/templates/module.php b/framework/yii/gii/generators/module/templates/module.php
index b22469c..ef0c55a 100644
--- a/framework/yii/gii/generators/module/templates/module.php
+++ b/framework/yii/gii/generators/module/templates/module.php
@@ -13,12 +13,12 @@ $className = substr($className, $pos + 1);
 echo "<?php\n";
 ?>
 
-namespace <?=$ns; ?>;
+namespace <?= $ns ?>;
 
 
-class <?=$className; ?> extends \yii\base\Module
+class <?= $className ?> extends \yii\base\Module
 {
-	public $controllerNamespace = '<?=$generator->getControllerNamespace(); ?>';
+	public $controllerNamespace = '<?= $generator->getControllerNamespace() ?>';
 
 	public function init()
 	{
diff --git a/framework/yii/gii/generators/module/templates/view.php b/framework/yii/gii/generators/module/templates/view.php
index 9ca15c1..311134d 100644
--- a/framework/yii/gii/generators/module/templates/view.php
+++ b/framework/yii/gii/generators/module/templates/view.php
@@ -4,15 +4,15 @@
  * @var yii\gii\generators\module\Generator $generator
  */
 ?>
-<div class="<?=$generator->moduleID . '-default-index'; ?>">
-	<h1><?="<?php"; ?> echo $this->context->action->uniqueId; ?></h1>
+<div class="<?= $generator->moduleID . '-default-index' ?>">
+	<h1><?= "<?php" ?> echo $this->context->action->uniqueId; ?></h1>
 	<p>
-		This is the view content for action "<?="<?php"; ?> echo $this->context->action->id; ?>".
-		The action belongs to the controller "<?="<?php"; ?> echo get_class($this->context); ?>"
-		in the "<?="<?php"; ?> echo $this->context->module->id; ?>" module.
+		This is the view content for action "<?= "<?php" ?> echo $this->context->action->id; ?>".
+		The action belongs to the controller "<?= "<?php" ?> echo get_class($this->context); ?>"
+		in the "<?= "<?php" ?> echo $this->context->module->id; ?>" module.
 	</p>
 	<p>
 		You may customize this page by editing the following file:<br>
-		<code><?="<?php"; ?> echo __FILE__; ?></code>
+		<code><?= "<?php" ?> echo __FILE__; ?></code>
 	</p>
 </div>
diff --git a/framework/yii/gii/views/default/diff.php b/framework/yii/gii/views/default/diff.php
index d01d0f2..6766528 100644
--- a/framework/yii/gii/views/default/diff.php
+++ b/framework/yii/gii/views/default/diff.php
@@ -10,6 +10,6 @@
 	<?php elseif (empty($diff)): ?>
 		<div class="alert alert-success">Identical.</div>
 	<?php else: ?>
-		<div class="content"><?=$diff; ?></div>
+		<div class="content"><?= $diff ?></div>
 	<?php endif; ?>
 </div>
diff --git a/framework/yii/gii/views/default/index.php b/framework/yii/gii/views/default/index.php
index 26ba583..011a44b 100644
--- a/framework/yii/gii/views/default/index.php
+++ b/framework/yii/gii/views/default/index.php
@@ -21,9 +21,9 @@ $this->title = 'Welcome to Gii';
 	<div class="row">
 		<?php foreach ($generators as $id => $generator): ?>
 		<div class="generator col-lg-4">
-			<h3><?=Html::encode($generator->getName()); ?></h3>
-			<p><?=$generator->getDescription(); ?></p>
-			<p><?=Html::a('Start »', ['default/view', 'id' => $id], ['class' => 'btn btn-default']); ?></p>
+			<h3><?= Html::encode($generator->getName()) ?></h3>
+			<p><?= $generator->getDescription() ?></p>
+			<p><?= Html::a('Start »', ['default/view', 'id' => $id], ['class' => 'btn btn-default']) ?></p>
 		</div>
 		<?php endforeach; ?>
 	</div>
diff --git a/framework/yii/gii/views/default/view.php b/framework/yii/gii/views/default/view.php
index 7899275..1ef5c77 100644
--- a/framework/yii/gii/views/default/view.php
+++ b/framework/yii/gii/views/default/view.php
@@ -24,9 +24,9 @@ foreach ($generator->templates as $name => $path) {
 }
 ?>
 <div class="default-view">
-	<h1><?=Html::encode($this->title); ?></h1>
+	<h1><?= Html::encode($this->title) ?></h1>
 
-	<p><?=$generator->getDescription(); ?></p>
+	<p><?= $generator->getDescription() ?></p>
 
 	<?php $form = ActiveForm::begin([
 		'id' => "$id-generator",
@@ -45,10 +45,10 @@ foreach ($generator->templates as $name => $path) {
 						Please select which set of the templates should be used to generated the code.
 				'); ?>
 				<div class="form-group">
-					<?=Html::submitButton('Preview', ['name' => 'preview', 'class' => 'btn btn-primary']); ?>
+					<?= Html::submitButton('Preview', ['name' => 'preview', 'class' => 'btn btn-primary']) ?>
 
 					<?php if(isset($files)): ?>
-						<?=Html::submitButton('Generate', ['name' => 'generate', 'class' => 'btn btn-success']); ?>
+						<?= Html::submitButton('Generate', ['name' => 'generate', 'class' => 'btn btn-success']) ?>
 					<?php endif; ?>
 				</div>
 			</div>
diff --git a/framework/yii/gii/views/default/view/files.php b/framework/yii/gii/views/default/view/files.php
index dae0274..0cc12dd 100644
--- a/framework/yii/gii/views/default/view/files.php
+++ b/framework/yii/gii/views/default/view/files.php
@@ -33,11 +33,11 @@ use yii\gii\CodeFile;
 		</thead>
 		<tbody>
 			<?php foreach ($files as $file): ?>
-			<tr class="<?=$file->operation; ?>">
+			<tr class="<?= $file->operation ?>">
 				<td class="file">
-					<?=Html::a(Html::encode($file->getRelativePath()), ['preview', 'file' => $file->id], ['class' => 'preview-code', 'data-title' => $file->getRelativePath()]); ?>
+					<?= Html::a(Html::encode($file->getRelativePath()), ['preview', 'file' => $file->id], ['class' => 'preview-code', 'data-title' => $file->getRelativePath()]) ?>
 					<?php if ($file->operation === CodeFile::OP_OVERWRITE): ?>
-						<?=Html::a('diff', ['diff', 'file' => $file->id], ['class' => 'diff-code label label-warning', 'data-title' => $file->getRelativePath()]); ?>
+						<?= Html::a('diff', ['diff', 'file' => $file->id], ['class' => 'diff-code label label-warning', 'data-title' => $file->getRelativePath()]) ?>
 					<?php endif; ?>
 				</td>
 				<td class="action">
diff --git a/framework/yii/gii/views/default/view/results.php b/framework/yii/gii/views/default/view/results.php
index 5ecb4e1..b37543f 100644
--- a/framework/yii/gii/views/default/view/results.php
+++ b/framework/yii/gii/views/default/view/results.php
@@ -18,5 +18,5 @@ use yii\gii\CodeFile;
 		echo '<div class="alert alert-success">' . $generator->successMessage() . '</div>';
 	}
 	?>
-	<pre><?=nl2br($results); ?></pre>
+	<pre><?= nl2br($results) ?></pre>
 </div>
diff --git a/framework/yii/gii/views/layouts/generator.php b/framework/yii/gii/views/layouts/generator.php
index 7d51e65..bdc032e 100644
--- a/framework/yii/gii/views/layouts/generator.php
+++ b/framework/yii/gii/views/layouts/generator.php
@@ -25,7 +25,7 @@ $activeGenerator = Yii::$app->controller->generator;
 		</div>
 	</div>
 	<div class="col-lg-9">
-		<?=$content; ?>
+		<?= $content ?>
 	</div>
 </div>
 <?php $this->endContent(); ?>
diff --git a/framework/yii/gii/views/layouts/main.php b/framework/yii/gii/views/layouts/main.php
index 1d6c2f4..f648999 100644
--- a/framework/yii/gii/views/layouts/main.php
+++ b/framework/yii/gii/views/layouts/main.php
@@ -14,7 +14,7 @@ $asset = yii\gii\GiiAsset::register($this);
 <html lang="en">
 <head>
 	<meta charset="utf-8"/>
-	<title><?=Html::encode($this->title); ?></title>
+	<title><?= Html::encode($this->title) ?></title>
 	<?php $this->head(); ?>
 </head>
 <body>
@@ -37,13 +37,13 @@ NavBar::end();
 ?>
 
 <div class="container">
-	<?=$content; ?>
+	<?= $content ?>
 </div>
 
 <footer class="footer">
 	<div class="container">
 		<p class="pull-left">A Product of <a href="http://www.yiisoft.com/">Yii Software LLC</a></p>
-		<p class="pull-right"><?=Yii::powered(); ?></p>
+		<p class="pull-right"><?= Yii::powered() ?></p>
 	</div>
 </footer>
 
diff --git a/framework/yii/requirements/views/web/index.php b/framework/yii/requirements/views/web/index.php
index a609705..82e3fdb 100644
--- a/framework/yii/requirements/views/web/index.php
+++ b/framework/yii/requirements/views/web/index.php
@@ -52,18 +52,18 @@
 		<table class="table table-bordered">
 			<tr><th>Name</th><th>Result</th><th>Required By</th><th>Memo</th></tr>
 			<?php foreach($requirements as $requirement): ?>
-			<tr class="<?=$requirement['condition'] ? 'success' : ($requirement['mandatory'] ? 'error' : 'warning'); ?>">
+			<tr class="<?= $requirement['condition'] ? 'success' : ($requirement['mandatory'] ? 'error' : 'warning') ?>">
 				<td>
-				<?=$requirement['name']; ?>
+				<?= $requirement['name'] ?>
 				</td>
 				<td>
-				<span class="result"><?=$requirement['condition'] ? 'Passed' : ($requirement['mandatory'] ? 'Failed' : 'Warning'); ?></span>
+				<span class="result"><?= $requirement['condition'] ? 'Passed' : ($requirement['mandatory'] ? 'Failed' : 'Warning') ?></span>
 				</td>
 				<td>
-				<?=$requirement['by']; ?>
+				<?= $requirement['by'] ?>
 				</td>
 				<td>
-				<?=$requirement['memo']; ?>
+				<?= $requirement['memo'] ?>
 				</td>
 			</tr>
 			<?php endforeach; ?>
@@ -74,7 +74,7 @@
 	<hr>
 
 	<div class="footer">
-		<p>Server: <?=$this->getServerInfo() . ' ' . $this->getNowDate(); ?></p>
+		<p>Server: <?= $this->getServerInfo() . ' ' . $this->getNowDate() ?></p>
 		<p>Powered by <a href="http://www.yiiframework.com/" rel="external">Yii Framework</a></p>
 	</div>
 </div>
diff --git a/framework/yii/views/errorHandler/callStackItem.php b/framework/yii/views/errorHandler/callStackItem.php
index 5b76936..566e1d3 100644
--- a/framework/yii/views/errorHandler/callStackItem.php
+++ b/framework/yii/views/errorHandler/callStackItem.php
@@ -12,15 +12,15 @@
  */
 ?>
 <li class="<?php if (!$handler->isCoreFile($file) || $index === 1) echo 'application'; ?> call-stack-item"
-	data-line="<?=(int)($line - $begin); ?>">
+	data-line="<?= (int)($line - $begin) ?>">
 	<div class="element-wrap">
 		<div class="element">
-			<span class="item-number"><?=(int)$index; ?>.</span>
+			<span class="item-number"><?= (int)$index ?>.</span>
 			<span class="text"><?php if ($file !== null) echo 'in ' . $handler->htmlEncode($file); ?></span>
 			<?php if ($method !== null): ?>
 				<span class="call">
 					<?php if ($file !== null) echo '&ndash;' ?>
-					<?php if ($class !== null) echo $handler->addTypeLinks($class) . '::'; ?><?=$handler->addTypeLinks($method . '()'); ?>
+					<?php if ($class !== null) echo $handler->addTypeLinks($class) . '::'; ?><?= $handler->addTypeLinks($method . '()') ?>
 				</span>
 			<?php endif; ?>
 			<span class="at"><?php if ($line !== null) echo 'at line'; ?></span>
@@ -32,7 +32,7 @@
 			<div class="error-line"></div>
 			<?php for ($i = $begin; $i <= $end; ++$i): ?><div class="hover-line"></div><?php endfor; ?>
 			<div class="code">
-				<?php for ($i = $begin; $i <= $end; ++$i): ?><span class="lines-item"><?=(int)($i + 1); ?></span><?php endfor; ?>
+				<?php for ($i = $begin; $i <= $end; ++$i): ?><span class="lines-item"><?= (int)($i + 1) ?></span><?php endfor; ?>
 				<pre><?php
 					// fill empty lines with a whitespace to avoid rendering problems in opera
 					for ($i = $begin; $i <= $end; ++$i) {
diff --git a/framework/yii/views/errorHandler/error.php b/framework/yii/views/errorHandler/error.php
index 3d5b65e..066d7e4 100644
--- a/framework/yii/views/errorHandler/error.php
+++ b/framework/yii/views/errorHandler/error.php
@@ -28,7 +28,7 @@ if ($exception instanceof \yii\base\UserException) {
 <html>
 <head>
 	<meta charset="utf-8" />
-	<title><?=$handler->htmlEncode($name); ?></title>
+	<title><?= $handler->htmlEncode($name) ?></title>
 
 	<style>
 		body {
@@ -69,8 +69,8 @@ if ($exception instanceof \yii\base\UserException) {
 </head>
 
 <body>
-	<h1><?=$handler->htmlEncode($name); ?></h1>
-	<h2><?=nl2br($handler->htmlEncode($message)); ?></h2>
+	<h1><?= $handler->htmlEncode($name) ?></h1>
+	<h2><?= nl2br($handler->htmlEncode($message)) ?></h2>
 	<p>
 		The above error occurred while the Web server was processing your request.
 	</p>
@@ -78,7 +78,7 @@ if ($exception instanceof \yii\base\UserException) {
 		Please contact us if you think this is a server error. Thank you.
 	</p>
 	<div class="version">
-		<?=date('Y-m-d H:i:s', time()); ?>
+		<?= date('Y-m-d H:i:s', time()) ?>
 	</div>
 	<?php if (method_exists($this, 'endBody')) $this->endBody(); // to allow injecting code into body (mostly by Yii Debug Toolbar) ?>
 </body>
diff --git a/framework/yii/views/errorHandler/exception.php b/framework/yii/views/errorHandler/exception.php
index 8ee6a2f..beebb29 100644
--- a/framework/yii/views/errorHandler/exception.php
+++ b/framework/yii/views/errorHandler/exception.php
@@ -342,8 +342,8 @@ pre .diff .change{
 		<?php if ($exception instanceof \yii\base\ErrorException): ?>
 			<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABACAIAAAA/NwYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU4QjIxQTgwQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU4QjIxQTgxQzU1MDExRTJBNEMxRURGMUEzMjA1M0UxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NThCMjFBN0VDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NThCMjFBN0ZDNTUwMTFFMkE0QzFFREYxQTMyMDUzRTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz74UrDRAAAOWUlEQVR42txb2W8T1xf2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" alt="Gears"/>
 			<h1>
-				<span><?=$handler->htmlEncode($exception->getName()); ?></span>
-				&ndash; <?=$handler->addTypeLinks(get_class($exception)); ?>
+				<span><?= $handler->htmlEncode($exception->getName()) ?></span>
+				&ndash; <?= $handler->addTypeLinks(get_class($exception)) ?>
 			</h1>
 		<?php else: ?>
 			<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAIAAACPssguAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwRURBOUQxQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwRURBOUQyQzQ3RDExRTJCRjVFODJDQkFGODFDN0VBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBFREE5Q0ZDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBFREE5RDBDNDdEMTFFMkJGNUU4MkNCQUY4MUM3RUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4L6mYsAAAE9klEQVR42tRa227aTBDGiwkhJtD8EanSQ6RKqKpSBbWqql5U7QP0TfsSvWhvStMEO6cqDUpjRylSQ1QC+IQN/mdrhBIb413vgsheIDDr9XwzOzPfzFrwPC/Fe8Cauiybe3uersNPQZJylYr04oUgCNyfJXJfcTAYXH/5YoH0qjq66LbbTrtdfPcOITTXALDuf/40FSWlabeuq6rpeZkHD6Ryma8dOOvDdV19Zycg/XBoml6r9ft9vk9EnNV/dOT8+RM1oXdxof/4wdfrEF/1G7Va+uIiagL8BfaBafMIAHy38/17/+/fydNgAkyDyXMHwLEsS1EmqH9kBOvgACbPFwDQaPfr11S9TjT7+JijEfgAsFst8/CQYv7BQe/6el4AQGTsfPuGbqSt2CGcnrarVS4hlRUAxETz9+/eyQntjXAL3MgeUhG7+vXtbSr1Dx+sqoYss3sCYlS/cXLinJ8nu713emqoKqMRmAD4xAElBQA3GpA62DwBsagfiIN7ecnyeHZyIbKoP4o46KurY2+Rrq7CeQ08YenZs0wmM1MAI+KQDv3VKpd7r1+L2WwQsGH0q9VCyN3dZrOrKPdevUpGsxMCmEAcMqVSaWNjcXExcN00zRbQ7BAAWMSs1ZY2N7NLSzMCMJk4ZBFaXl4OAxBF0Yza68fH3Z2dzNu3Ceo1lMB3raurScQhgqjBDhGiibS1v98zzVlEIax+CJ0TM9fYqAIXB9HRBsiFXq0myGuIVv2xxGGQNCaCVcG2tCGVDkBi4jBU80ThYFlwLVojICr1kxAHFLHRsWoNgzu5oABASBw8247ygVScZJhcyDIVuUDk6tf39oiIg+exUAOwMNiZfAVSAI7jGPv7sSUvhwLl/Jyqc0EEwA+dsR2H+EFWy4OdwdqERiACQNhxGIaaaCcWyDY3Zni7u2BzPgDoOg64Yo92YvJ43e2CzUlCKmIlDsSZ2FcG4Qq4faQoJO0jRKJ+uszFq+tWr5PkNRRPHM7O2IWBpdxGYxrkAk2DODihbAqKdJpNkRIDJhdxniDGEgdavgpSWp8+XX7+HADg9vsJCnDcPnr+XHr0KKpeE6fScdA0l1P7AIwAu2BxfR3qIYotREEcpj8mkwsxkjjs7iYmDuRdCXJykSuXx3YuxEji0O2mE0lvlEpWpZK6vWsxv2s0BCjeE1kVk4ujo2KlEvYEkZE4jMlBCK1sbUFdf7NCx22YlRVHURKuCeSiVpM2N8NGEFmJwzgAIH2hUAhYAD6vGQ6J/bOpe2/eBDoXiJ04jNm1CAVsDT8Zj7ijyAViJQ6zHPV6Z3s7kNfQrcylqlCVpuZ42IeHgbMpdJM4QD2auFc+mxE+m0JUHQfSqHd2Fsg7mMxxWjxwNiX43yBzNT9+9GSZj6I2NsKZH5e5Y9+hSODQ79+vfvjgP0K8SRzSvCw9jgvxJBe/fpmaln/yBAe3WXYcOHYuRmdTCFctmsah4zBjhtdo+D08BGHVhs1zd9Q/MgKIDcJjCwzyefv+/dRdG86/zItzvri+7knS3ZLefPgQPX7sMxSUy+W8ly+NtbW7Ir2+tjaoVHL5fDqdFgFENpstlMtQ/bdlOc3pJZLpjX6x6G1t/ff0KegdH1v96yV7EEk7nU6r1bJtm+PrVPx9FyFQd7FYBMa+sLAwBODnMgirAAM+p/EqLDcuJAiwbaCsgU+fsf8vwADjle3ME1OGEwAAAABJRU5ErkJggg==" alt="Attention"/>
@@ -359,13 +359,13 @@ pre .diff .change{
 				}
 			?></h1>
 		<?php endif; ?>
-		<h2><?=$handler->htmlEncode($exception->getMessage()); ?></h2>
-		<?=$handler->renderPreviousExceptions($exception); ?>
+		<h2><?= $handler->htmlEncode($exception->getMessage()) ?></h2>
+		<?= $handler->renderPreviousExceptions($exception) ?>
 	</div>
 
 	<div class="call-stack">
 		<ul>
-			<?=$handler->renderCallStackItem($exception->getFile(), $exception->getLine(), null, null, 1); ?>
+			<?= $handler->renderCallStackItem($exception->getFile(), $exception->getLine(), null, null, 1) ?>
 			<?php for ($i = 0, $trace = $exception->getTrace(), $length = count($trace); $i < $length; ++$i): ?>
 				<?=$handler->renderCallStackItem(@$trace[$i]['file'] ?: null, @$trace[$i]['line'] ?: null,
 					@$trace[$i]['class'] ?: null, @$trace[$i]['function'] ?: null, $i + 2); ?>
@@ -375,15 +375,15 @@ pre .diff .change{
 
 	<div class="request">
 		<div class="code">
-			<?=$handler->renderRequest(); ?>
+			<?= $handler->renderRequest() ?>
 		</div>
 	</div>
 
 	<div class="footer">
 		<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAADeCAIAAAAMx3q5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE5NkEyOTAzQzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE5NkEyOTA0QzQ3RDExRTI4NjIzOEE2RkU5QTc4RTU0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTk2QTI5MDFDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTk2QTI5MDJDNDdEMTFFMjg2MjM4QTZGRTlBNzhFNTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4DYCAjAAAx4UlEQVR42ux9aZvjuJEm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" alt="Yii Framework"/>
-		<p class="timestamp"><?=date('Y-m-d, H:i:s'); ?></p>
-		<p><?=$handler->createServerInformationLink(); ?></p>
-		<p><a href="http://yiiframework.com/">Yii Framework</a>/<?=$handler->createFrameworkVersionLink(); ?></p>
+		<p class="timestamp"><?= date('Y-m-d, H:i:s') ?></p>
+		<p><?= $handler->createServerInformationLink() ?></p>
+		<p><a href="http://yiiframework.com/">Yii Framework</a>/<?= $handler->createFrameworkVersionLink() ?></p>
 	</div>
 
 	<script type="text/javascript">
diff --git a/framework/yii/views/errorHandler/previousException.php b/framework/yii/views/errorHandler/previousException.php
index f9bbe52..5e8ded8 100644
--- a/framework/yii/views/errorHandler/previousException.php
+++ b/framework/yii/views/errorHandler/previousException.php
@@ -9,13 +9,13 @@
 	<h2>
 		<span>Caused by:</span>
 		<?php if ($exception instanceof \yii\base\Exception): ?>
-			<span><?=$handler->htmlEncode($exception->getName()); ?></span> &ndash;
-			<?=$handler->addTypeLinks(get_class($exception)); ?>
+			<span><?= $handler->htmlEncode($exception->getName()) ?></span> &ndash;
+			<?= $handler->addTypeLinks(get_class($exception)) ?>
 		<?php else: ?>
-			<span><?=$handler->htmlEncode(get_class($exception)); ?></span>
+			<span><?= $handler->htmlEncode(get_class($exception)) ?></span>
 		<?php endif; ?>
 	</h2>
-	<h3><?=$handler->htmlEncode($exception->getMessage()); ?></h3>
-	<p>in <span class="file"><?=$exception->getFile(); ?></span> at line <span class="line"><?=$exception->getLine(); ?></span></p>
-	<?=$handler->renderPreviousExceptions($exception); ?>
+	<h3><?= $handler->htmlEncode($exception->getMessage()) ?></h3>
+	<p>in <span class="file"><?= $exception->getFile() ?></span> at line <span class="line"><?= $exception->getLine() ?></span></p>
+	<?= $handler->renderPreviousExceptions($exception) ?>
 </div>
diff --git a/framework/yii/views/migration.php b/framework/yii/views/migration.php
index 63dfe07..7f3b0a9 100644
--- a/framework/yii/views/migration.php
+++ b/framework/yii/views/migration.php
@@ -8,7 +8,7 @@
 echo "<?php\n";
 ?>
 
-class <?=$className; ?> extends \yii\db\Migration
+class <?= $className ?> extends \yii\db\Migration
 {
 	public function up()
 	{
@@ -17,7 +17,7 @@ class <?=$className; ?> extends \yii\db\Migration
 
 	public function down()
 	{
-		echo "<?=$className; ?> cannot be reverted.\n";
+		echo "<?= $className ?> cannot be reverted.\n";
 		return false;
 	}
 }
diff --git a/framework/yii/web/AssetBundle.php b/framework/yii/web/AssetBundle.php
index d592e32..15ba3f6 100644
--- a/framework/yii/web/AssetBundle.php
+++ b/framework/yii/web/AssetBundle.php
@@ -15,8 +15,9 @@ use yii\base\View;
 /**
  * AssetBundle represents a collection of asset files, such as CSS, JS, images.
  *
- * Each asset bundle has a unique name that globally identifies it among all asset bundles
- * used in an application.
+ * Each asset bundle has a unique name that globally identifies it among all asset bundles used in an application.
+ * The name is the [fully qualified class name](http://php.net/manual/en/language.namespaces.rules.php)
+ * of the class representing it.
  *
  * An asset bundle can depend on other asset bundles. When registering an asset bundle
  * with a view, all its dependent asset bundles will be automatically registered.
@@ -130,13 +131,9 @@ class AssetBundle extends Object
 
 	/**
 	 * Registers the CSS and JS files with the given view.
-	 * It will then try to convert non-CSS or JS files (e.g. LESS, Sass) into the corresponding
-	 * CSS or JS files using [[AssetManager::converter|asset converter]].
-	 * @param \yii\base\View $view the view that the asset files to be registered with.
-	 * @throws InvalidConfigException if [[baseUrl]] or [[basePath]] is not set when the bundle
-	 * contains internal CSS or JS files.
+	 * @param \yii\base\View $view the view that the asset files are to be registered with.
 	 */
-	public function registerAssets($view)
+	public function registerAssetFiles($view)
 	{
 		foreach ($this->js as $js) {
 			if (strpos($js, '/') !== 0 && strpos($js, '://') === false) {
@@ -156,6 +153,8 @@ class AssetBundle extends Object
 
 	/**
 	 * Publishes the asset bundle if its source code is not under Web-accessible directory.
+	 * It will also try to convert non-CSS or JS files (e.g. LESS, Sass) into the corresponding
+	 * CSS or JS files using [[AssetManager::converter|asset converter]].
 	 * @param AssetManager $am the asset manager to perform the asset publishing
 	 * @throws InvalidConfigException if [[baseUrl]] or [[basePath]] is not set when the bundle
 	 * contains internal CSS or JS files.
diff --git a/framework/yii/web/AssetManager.php b/framework/yii/web/AssetManager.php
index 85b378a..49374f0 100644
--- a/framework/yii/web/AssetManager.php
+++ b/framework/yii/web/AssetManager.php
@@ -95,10 +95,12 @@ class AssetManager extends Component
 	 * it will treat `$name` as the class of the asset bundle and create a new instance of it.
 	 *
 	 * @param string $name the class name of the asset bundle
+	 * @param boolean $publish whether to publish the asset files in the asset bundle before it is returned.
+	 * If you set this false, you must manually call `AssetBundle::publish()` to publish the asset files.
 	 * @return AssetBundle the asset bundle instance
 	 * @throws InvalidConfigException if $name does not refer to a valid asset bundle
 	 */
-	public function getBundle($name)
+	public function getBundle($name, $publish = true)
 	{
 		if (isset($this->bundles[$name])) {
 			if ($this->bundles[$name] instanceof AssetBundle) {
@@ -111,8 +113,10 @@ class AssetManager extends Component
 		} else {
 			$bundle = Yii::createObject($name);
 		}
-		/** @var AssetBundle $bundle */
-		$bundle->publish($this);
+		if ($publish) {
+			/** @var AssetBundle $bundle */
+			$bundle->publish($this);
+		}
 		return $this->bundles[$name] = $bundle;
 	}
 
diff --git a/framework/yii/web/User.php b/framework/yii/web/User.php
index 4aa7c67..eca2ed6 100644
--- a/framework/yii/web/User.php
+++ b/framework/yii/web/User.php
@@ -10,7 +10,6 @@ namespace yii\web;
 use Yii;
 use yii\base\Component;
 use yii\base\InvalidConfigException;
-use yii\base\InvalidParamException;
 
 /**
  * User is the class for the "user" application component that manages the user authentication status.
diff --git a/tests/unit/data/ar/Customer.php b/tests/unit/data/ar/Customer.php
index 441b37c..60a68b5 100644
--- a/tests/unit/data/ar/Customer.php
+++ b/tests/unit/data/ar/Customer.php
@@ -24,7 +24,7 @@ class Customer extends ActiveRecord
 
 	public function getOrders()
 	{
-		return $this->hasMany('Order', ['customer_id' => 'id'])->orderBy('id');
+		return $this->hasMany(Order::className(), ['customer_id' => 'id'])->orderBy('id');
 	}
 
 	public static function active($query)
diff --git a/tests/unit/data/ar/Order.php b/tests/unit/data/ar/Order.php
index b6392ed..6d5e926 100644
--- a/tests/unit/data/ar/Order.php
+++ b/tests/unit/data/ar/Order.php
@@ -19,17 +19,17 @@ class Order extends ActiveRecord
 
 	public function getCustomer()
 	{
-		return $this->hasOne('Customer', ['id' => 'customer_id']);
+		return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
 	}
 
 	public function getOrderItems()
 	{
-		return $this->hasMany('OrderItem', ['order_id' => 'id']);
+		return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
 	}
 
 	public function getItems()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->via('orderItems', function ($q) {
 				// additional query configuration
 			})->orderBy('id');
@@ -37,7 +37,7 @@ class Order extends ActiveRecord
 
 	public function getBooks()
 	{
-		return $this->hasMany('Item', ['id' => 'item_id'])
+		return $this->hasMany(Item::className(), ['id' => 'item_id'])
 			->viaTable('tbl_order_item', ['order_id' => 'id'])
 			->where(['category_id' => 1]);
 	}
diff --git a/tests/unit/data/ar/OrderItem.php b/tests/unit/data/ar/OrderItem.php
index ad931a8..b340a46 100644
--- a/tests/unit/data/ar/OrderItem.php
+++ b/tests/unit/data/ar/OrderItem.php
@@ -19,11 +19,11 @@ class OrderItem extends ActiveRecord
 
 	public function getOrder()
 	{
-		return $this->hasOne('Order', ['id' => 'order_id']);
+		return $this->hasOne(Order::className(), ['id' => 'order_id']);
 	}
 
 	public function getItem()
 	{
-		return $this->hasOne('Item', ['id' => 'item_id']);
+		return $this->hasOne(Item::className(), ['id' => 'item_id']);
 	}
 }
diff --git a/tests/unit/data/views/layout.php b/tests/unit/data/views/layout.php
index fa3a86e..0b5a0e1 100644
--- a/tests/unit/data/views/layout.php
+++ b/tests/unit/data/views/layout.php
@@ -14,7 +14,7 @@
 <body>
 <?php $this->beginBody(); ?>
 
-<?=$content; ?>
+<?= $content ?>
 
 <?php $this->endBody(); ?>
 </body>