如何在Yii2中添加自己的名称空间

时间:2018-12-25 08:36:25

标签: yii2 yii2-advanced-app php-namespaces

我已经更改了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网站上看到了此问题。但是,它在我的情况下不起作用。

1 个答案:

答案 0 :(得分:2)

首先protected是保留关键字(令牌T_PROTECTED)。您可以保留目录名称,但需要更改名称空间根别名。

在别名配置文件protected/common/bootstrap.php中写:

Yii::setAlias('app', dirname(dirname(__DIR__))); // set path to protected directory

然后使用namespace app\base;use app\base\AnyFile;

请参阅指南https://www.yiiframework.com/doc/guide/2.0/en/concept-autoloading的“类自动加载”部分