От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В данной статье мы с вами познакомимся с понятием модулей. В Yii2 модули – это фактически приложения в приложении. Классический пример модуля – это админская часть сайта, модуль интернет-магазина и т.д. Давайте попробуем создать модуль админки, тем более что благодаря модулю Gii делается это за считанные минуты.
Итак, как уже отмечалось выше, в модули – это по сути приложения в приложении. Это означает, что модуль может иметь свои контроллеры, модели, представления и прочие компоненты, как и основное приложение.
Если вы захотите пройти процедуру ручного создания модуля с нуля, тогда предлагаю вам обратиться к соответствующему разделу документации по фреймворку. Мы же в статье воспользуемся куда более простым и, главное, быстрым способом, которым и принято пользоваться на практике. Способ этот заключается в использовании генератора кода – модуля Gii. Как вы помните, среди прочего, Gii может генерировать код модуля.
Нажмем кнопку Start блока Module Generator и перейдем на страницу создания модуля, где заполним форму из двух полей. В форме укажем класс модуля и его ID.

Фреймворк Yii2. Быстрый старт
Получите курс и узнайте, как с помощью фреймворка Yii2 разрабатывать веб-приложения на примере блога
Смотреть курсДалее, как обычно, жмем кнопку Preview и на следующей странице – кнопку Generate. На новой странице нам сообщают об успешном создании модуля и предлагают скопировать блок кода и вставить его в файл config\web.php, данный блок кода включит созданный фреймворком модуль админки.
Откроем файл конфигурации веб-приложения и вставим в него предлагаемый код.
1 2 3 4 5 | 'modules' => [ 'admin' => [ 'class' => 'app\modules\admin\Module', ], ], |
К слову, созданный модуль находится в папке modules, которая должна появиться в корне приложения Yii.
В данной папке дублируется структура приложения Yii, т.е. уже есть папка controllers с контроллерами, папка views с представлениями. Также мы можем создать папку models, в которой будут храниться модели модуля. В общем, как я и говорил выше, модуль – это приложение в приложении, законченный программный блок.
В папке контроллеров модуля уже создан дефолтный контроллер DefaultController, который мы и можем протестировать. Для этого достаточно набрать в URL адрес нашего модуля — //yii.loc/admin/.
На этом мы, пожалуй, остановимся в данной статье. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Фреймворк Yii2. Быстрый старт
Получите курс и узнайте, как с помощью фреймворка Yii2 разрабатывать веб-приложения на примере блога
Смотреть курс
Всё проделал как в статье, но при переходе в админку выдаёт 404.
Нашел проблему в правилах маршрутизации:
'' => 'site/',
Подскажите как правильно прописать маршруты так, чтобы работали и контроллеры и модули,
‘<action:\w+>’ => ‘site/<action>’
А как подключить файлы в модуле, например images который находится в модуле admin по адресу modules/admin/web/images.. А то все пути прописываются от корня имясайта/images/имякартинки….. Никак не могу понять…Вчера у вас видел статью про стили и скрипты, все сделал за 2 минуты, а тут целый день мучаюсь
Если Вы публикуете ресурсы из директории, недоступной из web, тогда вместо свойств basePath и baseUrl необходимо использовать свойство sourcePath — издокументации .
Т.е. вместо этих свойств:
public $basePath = '@webroot';
public $baseUrl = '@web';
Используете это:
public $sourcePath = '@app/modules/admin/web';
Там же в документации есть и пример.
Так это для скриптов, и стилей, это все отлично работает в модуле. А фото никак не подключается
А какая разница? Скрипты, стили, картинки — это все файлы, отдаваемые по http — для браузера разницы нет.
Ну видимо есть… Раз он берет путь от корня и там же ищет папку с картинками. Плюс в этом сайте не указываются пути к картинкам, а только к скриптам. В доке тоже про это ничего нету, как и во всем интернете. Видимо люди не создают модули… А если создают, то все скрипты подключают в основном шаблоне и используют только его
….»в этом файле не указываются пути»…..
Как создать страницу ошибки именно для админки…Вернее, где прописать путь на эту страницу