Yii2: Модули

Yii2: Модули

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

Итак, как уже отмечалось выше, в модули – это по сути приложения в приложении. Это означает, что модуль может иметь свои контроллеры, модели, представления и прочие компоненты, как и основное приложение.

Если вы захотите пройти процедуру ручного создания модуля с нуля, тогда предлагаю вам обратиться к соответствующему разделу документации по фреймворку. Мы же в статье воспользуемся куда более простым и, главное, быстрым способом, которым и принято пользоваться на практике. Способ этот заключается в использовании генератора кода – модуля Gii. Как вы помните, среди прочего, Gii может генерировать код модуля.

Yii2: Модальное окно

Нажмем кнопку Start блока Module Generator и перейдем на страницу создания модуля, где заполним форму из двух полей. В форме укажем класс модуля и его ID.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Yii2: Модальное окно

Далее, как обычно, жмем кнопку Preview и на следующей странице – кнопку Generate. На новой странице нам сообщают об успешном создании модуля и предлагают скопировать блок кода и вставить его в файл config\web.php, данный блок кода включит созданный фреймворком модуль админки.

Yii2: Модальное окно

Откроем файл конфигурации веб-приложения и вставим в него предлагаемый код.

Yii2: Модальное окно

К слову, созданный модуль находится в папке modules, которая должна появиться в корне приложения Yii.

Yii2: Модальное окно

В данной папке дублируется структура приложения Yii, т.е. уже есть папка controllers с контроллерами, папка views с представлениями. Также мы можем создать папку models, в которой будут храниться модели модуля. В общем, как я и говорил выше, модуль – это приложение в приложении, законченный программный блок.

В папке контроллеров модуля уже создан дефолтный контроллер DefaultController, который мы и можем протестировать. Для этого достаточно набрать в URL адрес нашего модуля — http://yii.loc/admin/.

Yii2: Модальное окно

На этом мы, пожалуй, остановимся в данной статье. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (9)

  1. Евгений

    Всё проделал как в статье, но при переходе в админку выдаёт 404.

    Нашел проблему в правилах маршрутизации:

    '' => 'site/',

    Подскажите как правильно прописать маршруты так, чтобы работали и контроллеры и модули,

  2. Andrey

    А как подключить файлы в модуле, например images который находится в модуле admin по адресу modules/admin/web/images.. А то все пути прописываются от корня имясайта/images/имякартинки….. Никак не могу понять…Вчера у вас видел статью про стили и скрипты, все сделал за 2 минуты, а тут целый день мучаюсь

    • Андрей Кудлай

      Если Вы публикуете ресурсы из директории, недоступной из web, тогда вместо свойств basePath и baseUrl необходимо использовать свойство sourcePath — из документации.
      Т.е. вместо этих свойств:

      public $basePath = '@webroot';
      public $baseUrl = '@web';

      Используете это:
      public $sourcePath = '@app/modules/admin/web';
      Там же в документации есть и пример.

      • Andrey

        Так это для скриптов, и стилей, это все отлично работает в модуле. А фото никак не подключается

        • Андрей Кудлай

          А какая разница? Скрипты, стили, картинки — это все файлы, отдаваемые по http — для браузера разницы нет.

          • Andrey

            Ну видимо есть… Раз он берет путь от корня и там же ищет папку с картинками. Плюс в этом сайте не указываются пути к картинкам, а только к скриптам. В доке тоже про это ничего нету, как и во всем интернете. Видимо люди не создают модули… А если создают, то все скрипты подключают в основном шаблоне и используют только его

  3. Andrey

    ….»в этом файле не указываются пути»…..

  4. Вячеслав

    Как создать страницу ошибки именно для админки…Вернее, где прописать путь на эту страницу

Добавить комментарий

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree