Yii2 Assets. Часть 2

Yii2 Assets

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы познакомимся с темой Yii2 Assets или, иными словами, подключением ресурсов из папки web: в первую очередь — это файлы JS и CSS.

В прошлой статье мы с вами познакомились с понятием ресурс и комплект ресурсов в Yii. Говоря простыми словами, комплект ресурсов (Assets) — это ни что иное, как набор подключаемых файлов, в первую очередь скриптов и стилей (css и js).

Подключить свой комплект ресурсов просто, достаточно открыть класс AppAsset и в свойствах $js и $css перечислить в формате массива подключаемые файлы. Сами файлы JS и CSS необходимо поместить в публичную папку web. В этом случае подключаемые файлы будут сразу же доступны.

В данной статье мы продолжим начатую тему и узнаем, как указать в шаблоне, какой именно комплект ресурсов необходимо подключить (комплектов может быть несколько) и как подключить ресурсы, которые находятся вне публичной папки.

Начнем с первого вопроса. Подключить нужный комплект ресурсов можно вызвав метод register. Именно подключение AppAsset и можно найти в шаблоне \views\layouts\main.php:

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

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

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

Yii2 Assets

Соответственно, если вам необходимо зарегистрировать другой комплект ресурсов из папки assets — укажите именно его. Все просто.

Ну а теперь второй вопрос: как использовать пакет ресурсов, который находится не в папке web, т.е. в папке, которая не видна из вне? Это может потребоваться в том случае, когда вы, к примеру, создаете модуль админки, для которой будут использованы свои файлы стилей и скриптов. В принципе, все ресурсы в этом случае можно поместить в папку web, но все же вы вполне можете захотеть поместить их в папку модуля.

Чтобы решить проблему, нам потребуется вместо свойств $basePath и $baseUrl воспользоваться свойством $sourcePath. Значением этого свойства мы и укажем папку с ресурсами. Для примера давайте создадим файл admin.js в следующей структуре каталогов: \modules\admin\web\js\admin.js

Yii2 Assets

Теперь определим новый комплект ресурсов AdminAsset:

<?php

namespace app\assets;

use yii\web\AssetBundle;

class AdminAsset extends AssetBundle
{
 public $sourcePath = '@app/modules/admin/web';

 public $css = [];
 public $js = [
 'js/admin.js',
 ];
 
 public $depends = [];
}

Yii2 Assets

Обратите еще раз внимание, мы вместо свойств $basePath и $baseUrl использовали свойство $sourcePath, в котором указали путь (path) к папке с необходимыми ресурсами для админки. Далее в шаблоне регистрируем искомый комплект ресурсов:

AdminAsset::register($this);

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

Yii2 Assets

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

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

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

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

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

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

Получить

Метки:

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

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

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

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

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

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

Я не робот.

Spam Protection by WP-SpamFree