【问题标题】:How to add own namespace in Yii2如何在 Yii2 中添加自己的命名空间
【发布时间】:2018-12-25 08:36:25
【问题描述】:

我已经改变了 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\components\AnyFile?

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


【解决方案1】:

首先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的类自动加载部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 2017-08-18
    • 2017-02-23
    • 2010-10-30
    • 2016-11-17
    • 2021-06-16
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多