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;
?>
-
=Html::encode($this->title); ?>
+
= Html::encode($this->title) ?>
Please fill out the following fields to login:
@@ -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' => "
{input}
\n
{error}
",
@@ -34,7 +34,7 @@ $this->params['breadcrumbs'][] = $this->title;
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
- =$form->field($model, 'username'); ?>
- =$form->field($model, 'password')->passwordInput(); ?>
+ = $form->field($model, 'username') ?>
+ = $form->field($model, 'password')->passwordInput() ?>
- =Html::submitButton('Login'); ?>
+ = Html::submitButton('Login') ?>
```
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
+ [
+ 'urlManager' => [
+ 'enablePrettyUrl' => true,
+ 'showScriptName' => false,
+ ],
+ ],
+];
+```
+
+Note that
+
+### Named parameters
+
+### Handling subdomains
+
+### Faking URL Suffix
+
+```php
+ [
+ '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
+ [
+ '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;
?>
- =Html::encode($user->name); ?>
+ = Html::encode($user->name) ?>
```
@@ -97,7 +97,7 @@ use yii\helpers\HtmlPurifier;
?>
- =HtmlPurifier::process($post->text); ?>
+ = HtmlPurifier::process($post->text) ?>
```
@@ -256,16 +256,16 @@ use yii\helpers\Html;
?>
beginPage(); ?>
-
+
-
-
=Html::encode($this->title); ?>
+
+
= Html::encode($this->title) ?>
head(); ?>
beginBody(); ?>
- =$content; ?>
+ = $content ?>
endBody(); ?>
@@ -295,8 +295,8 @@ use yii\helpers\Html;
?>
-
=Html::encode($username); ?>
-
=Html::encode($tagline); ?>
+
= Html::encode($username) ?>
+
= Html::encode($tagline) ?>
```
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, "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
* @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';
$data): ?>
- =Html::a($tag, ['view', 'tag' => $tag]); ?> |
- =date('Y-m-d h:i:sa', $data['time']); ?> |
- =$data['ip']; ?> |
- =$data['method']; ?> |
- =$data['url']; ?> |
+ = Html::a($tag, ['view', 'tag' => $tag]) ?> |
+ = date('Y-m-d h:i:sa', $data['time']) ?> |
+ = $data['ip'] ?> |
+ = $data['method'] ?> |
+ = $data['url'] ?> |
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();
?>
- =$panel->getSummary(); ?>
+ = $panel->getSummary() ?>
- ›
+ ›
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