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

如何在Yii2中添加自己的名称空间,yii2,yii2-advanced-app,php-namespaces,Yii2,Yii2 Advanced App,Php Namespaces,我改变了Yii2高级目录结构,如下所示(运行良好): 现在,我试图添加一个名称空间,名为namespace protected\base到protected/base/AnyFile.php文件中,并将其作为use protected\base\AnyFile在控制器中使用。但是,我的项目出现了错误: 语法错误,意外的“受保护”(T\u受保护),需要标识符(T\u字符串)或函数(T\u函数)或常量(T\u常量)或\\(T\u NS\u分隔符) 我在网站上看到了这个问题:。但是,它在我的情况下不起

我改变了Yii2高级目录结构,如下所示(运行良好):

现在,我试图添加一个名称空间,名为
namespace protected\base
protected/base/AnyFile.php
文件中,并将其作为
use protected\base\AnyFile在控制器中使用。但是,我的项目出现了错误:

语法错误,意外的“受保护”(T\u受保护),需要标识符(T\u字符串)或函数(T\u函数)或常量(T\u常量)或\\(T\u NS\u分隔符)


我在网站上看到了这个问题:。但是,它在我的情况下不起作用。

首先
受保护
是保留关键字(令牌t\u受保护)。您可以保留目录名,但需要更改命名空间根别名

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

Yii::setAlias('app', dirname(dirname(__DIR__))); // set path to protected directory
然后使用
名称空间app\base
使用app\base\AnyFile


请参阅指南的类自动加载部分

为什么不使用:protected\components\AnyFile?
Yii::setAlias('app', dirname(dirname(__DIR__))); // set path to protected directory