Казалось бы, все лишь нужно создать папку в корне и указать верный namespace и все должно начать работать как по взмаху волшебной палочки. Но не все так просто и сейчас я объясню почему.
Если вы сделаете так как я написал выше, то namespace не будет поддерживаться — будет выводиться ошибки о несуществующем классе.
Задача
Сейчас я опишу пример из advanced, но так же покажу как это сделать в basic.
Основная задача — это создать папку, например, modules внутри корневой директории, где лежать такие папки как /backend, /console, /frontend.
Ниже вы можете посмотреть как этого добиться.
В Yii2 advanced
В common/config/bootstrap.php
по умолчанию вы должны найти следующее:
<?php Yii::setAlias('@common', dirname(__DIR__)); Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend'); Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend'); Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
Теперь, если вы хотите создать собственную папку в корне, где будут лежать классы и прочее, то ваш нужно добавить новый псевдоним и готово, пример:
Yii::setAlias('@modules', dirname(dirname(__DIR__)) . '/modules');
Где @modules
— это новый псевдоним, который мы можем использовать, а /modules
— это путь для папки.
В Yii2 basic
В basic чуть-чуть по другому, но логика, в целом остается точно такой же. Вам нужно зайти в config/web.php
:
... 'aliases' => [ '@bower' => '@vendor/bower-asset', '@npm' => '@vendor/npm-asset', '@modules' => dirname(dirname(__DIR__)) . '/modules' ], 'components' => [ ...
И добавить новое значение в aliases
.
Yii псевдонимы
Для более дательного понимая логики псевдонимов, вы можете обратиться к официальному гайду, где подробно описывается где и как они могут использоваться. Лучше чем там, вам никто не расскажет.