Своё пространство имён для проекта на yii2

Yii2 предоставляет для установки на выбор два шаблона приложения: basic и advanced. Advanced – это по сути несколько приложений: два web и одно консольное, плюс директория common, содержащая общие для них классы и конфиги. И каждый их этих элементов лежит в своём пространстве имён, соответствующем директории. Это удобно, но не всегда желательно. Лучше если у проекта единое общее пространство имён верхнего уровня.
Вот и я, например, решил обернуть весь проект разрабатываемый на базе advanced завернуть в единый namespace. То есть чтобы было не common\models\... и backend\controllers, но стало tracktor\common\models\... и backend\controllers. Сказано сделано: поиск замена в Eclipse, добавление нового namespace в автозагрузку composer.json, несколько запусков тестов, доставшихся из коробки. К чести Yii: всё даже заработало.
Пришло время воспользоваться генератором gii, чтобы создать первый модуль, но не тут-то было…

Module class must be properly namespaced.

— говорит генератор. Решается просто: в common/config/bootstrap.php следует добавить алиас, указывающий на корень проекта.
Yii::setAlias('tracktor', dirname(dirname(__DIR__)));

Эта запись была опубликована в рубрике PHP и отмечена метками , , . Добавить в закладки ссылку.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>