Как добавить собственное пространство имен в 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 / более короткое пространство имен. Тем не менее, это не сработало в моем состоянии.

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]