2016-10-14 2 views
0

У меня есть вложенный модуль 'почты' в моей yii2 (основной шаблон) в этом месте:Yii2 Пользовательские/Шортер пространство имен

@ приложение/модули/админ/модули/почта

Как создать более короткие пространства имен во всех файлах модулей. Поэтому вместо этого пространства имен в моих файлах контроллера:

namespace app \ modules \ admin \ modules \ mail \ controllers;

Я мог бы просто:

имен почтовых/контроллеров;

Если я когда-либо перемещаю папку с модулем, мне не нужно было бы вручную изменять пространство имен в каждом отдельном файле (также они просто длинны).

Документы действительно рекомендую это здесь http://www.yiiframework.com/doc-2.0/guide-structure-modules.html#nested-modules, где он говорит: «вам следует использовать более короткие имена здесь!»

Но как это сделать?

ответ

0

вы должны установить псевдоним в каталог в bootstrap в пользовательское пространство имен.

Во-первых, создать bootstrap.php в config/ папку:

//bootstrap.php 
Yii::setAlias('mail', dirname(dirname(__DIR__)) . '/modules/admin/modules/mail'); 

Добавить запустить bootstrap.php в инициализации приложения.

Редактировать файл web/index.php, добавьте эту строку после того, как требуют Yii.php

require(__DIR__ . '/../vendor/autoload.php'); 
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); 

//Add after require Yii.php 
require(__DIR__ . '/../config/bootstrap.php'); 

$config = require(__DIR__ . '/../config/web.php'); 
(new yii\web\Application($config))->run(); 

Теперь вы можете установить пространство имен для контроллеров почтового модуля mail/controllers.

Надеюсь, это будет полезно.

Смежные вопросы