Содержание
- Регистрация ресурсов
- Включение ресурса на страницу
- Зависимости ресурсов
- Контейнеры ресурсов
- Пакеты ресурсов
Регистрация ресурсов
Класс Asset предоставляет простой путь к управлению использования CSS и JavaScript в вашем приложении. Для подключения необходимого ресурса просто вызовите метод add класса Asset.
Регистрация ресурса:
Asset::add('jquery', 'js/jquery.js');
Метод add принимает три параметра. Первый - это имя ресурса, второй - путь к ресурсу относительно директории public, третий параметр представляет собой список зависимостей ресурса (мы вернемся к этому позднее). Заметьте, что нет необходимости указывать методу тип регистрируемого ресурса. Метод add использует раширение файла для регистрации.
Вставка ресурса
Когда вы готовы поключить зарегистрированный ресурс в представление, просто используйте методы styles или scripts:
Вставка ресурса в представление:
<head>
<?php echo Asset::styles(); ?>
<?php echo Asset::scripts(); ?>
</head>
Зависимости ресурсов
Иногда может понадобиться установить зависимости ресурсов, т.е. порядок включения их на страницу. Такое имеет место, когда какой-то javascript не может быть загружен раньше другого, то же самое может быть и с css стилями. И здесь нет ничего проще в Laravel! Вы просто указываете третий параметр в add методе для объявления зависимости:
Регистрация пакета, имеющего зависимости:
Asset::add('jquery-ui', 'js/jquery-ui.js', 'jquery');
В этом примере, вы определяете jquery-ui ресурс, который зависит от ресурса jquery. Теперь, при вставке на страницу, ресурс jquery будет всегда объявлен раньше jquery-ui, что позволит избежать ошибок. Все это хорошо, но что делать, если есть целая цепочка зависимостей? как их зарегистрировать? Да нет проблем:
Регистрация ресурса с множественными зависимостями:
Asset::add('jquery-ui', 'js/jquery-ui.js', array('first', 'second'));
Контейнеры ресурсов
Для улучшения отклика, обычно JavaScript размещают в конце HTML документа. Но что делать, если некотрые ресурсы необходимо разместить наверху документа? Нет проблем. Класс ресурсов предоставляет простое решение по управлению containers (контейнерами). Просто вызовите метод container класса Asset и укажите имя контейнера. Имея экземпляр контейнера, вы свободны в выборе любых ресурсов, которые вы захотите использовать в нем:
Получение экземпляра контейнера ресурсов:
Asset::container('footer')->add('example', 'js/example.js');
Вставка на страницу ресурсов данного контейнера:
echo Asset::container('footer')->scripts();
Пакеты (бандлы) ресурсов
Перед изучением как удобно добавлять и вставлять на страницу бандлы ресурсов, вам потребуется прочитать документацию создание и публикация пакетов ресурсов.
При регистрации ресурсов, путь к последним обычно указыватся относитель папки public. Тем не менее, это не всегда удобно, когда пакеты ресурсов расположены в директории public/bundles и принадлежат какому-то бандлу. Но мы помним, что Laravel облегчает нашу жизнь. Таким образом, просто укажите, из какого бандла брать ресурс.
Указание бандла, ресурс которого мы хотим использовать:
Asset::container('foo')->bundle('admin');
Теперь, когда вы добавляете ресурс, вы можете использовать пути относительно bundle директории. Laravel автоматически сгенерирует корректные полные пути.