如何在 Yii2 中添加自己的命名空间
How to add own namespace in Yii2
我修改了 Yii2 高级目录结构如下(效果很好):
app-folder
-admin
-assets
-.htaccess
-index.php
-assets
-protected
-backend
...
-common
...
-frontend
...
...
-uploads
...
现在,我正在尝试将命名空间作为 namespace protected\base;
添加到 protected/base/AnyFile.php
文件中,并在控制器中作为 use protected\base\AnyFile;
使用它。但是,我的项目出现错误:
syntax error, unexpected 'protected' (T_PROTECTED), expecting identifier (T_STRING) or function (T_FUNCTION) or const (T_CONST) or \ (T_NS_SEPARATOR)
我在网站上看到了这个问题:Yii2 Custom / Shorter Namespace。但是,它对我的情况不起作用。
首先protected
是保留关键字(tokenT_PROTECTED)。您可以保留目录名称,但需要更改名称空间根别名。
在您的别名配置文件中 protected/common/bootstrap.php
写入:
Yii::setAlias('app', dirname(dirname(__DIR__))); // set path to protected directory
然后使用namespace app\base;
和use app\base\AnyFile;
。
请参阅指南的 Class 自动加载部分 https://www.yiiframework.com/doc/guide/2.0/en/concept-autoloading
我修改了 Yii2 高级目录结构如下(效果很好):
app-folder
-admin
-assets
-.htaccess
-index.php
-assets
-protected
-backend
...
-common
...
-frontend
...
...
-uploads
...
现在,我正在尝试将命名空间作为 namespace protected\base;
添加到 protected/base/AnyFile.php
文件中,并在控制器中作为 use protected\base\AnyFile;
使用它。但是,我的项目出现错误:
syntax error, unexpected 'protected' (T_PROTECTED), expecting identifier (T_STRING) or function (T_FUNCTION) or const (T_CONST) or \ (T_NS_SEPARATOR)
我在网站上看到了这个问题:Yii2 Custom / Shorter Namespace。但是,它对我的情况不起作用。
首先protected
是保留关键字(tokenT_PROTECTED)。您可以保留目录名称,但需要更改名称空间根别名。
在您的别名配置文件中 protected/common/bootstrap.php
写入:
Yii::setAlias('app', dirname(dirname(__DIR__))); // set path to protected directory
然后使用namespace app\base;
和use app\base\AnyFile;
。
请参阅指南的 Class 自动加载部分 https://www.yiiframework.com/doc/guide/2.0/en/concept-autoloading