Повний посібник (v2) Ресурси - Українська спільнота Yii Framework

Комплекти ресурсів #

Завдання Комплекту Ресурсів #

Наступний код задає основний комплект ресурсів, що використовується в шаблоні базової програми:

Розташування ресурсів #

Ресурси, залежно від їхнього розташування, можуть бути класифіковані як:

Для розширень, у зв'язку з тим, що їх ресурси розташовуються разом з їх вихідним кодом в директоріях, які не є доступними, необхідно вказати властивість sourcePath при завданні класу комплекту ресурсів для них.

Залежність ресурсів #

Залежність ресурсів є також залежними. Це означає, що й комплект А залежить від, який залежить від, то теж залежить від.

Параметри ресурсів #

Наприклад, умовно увімкнемо CSS файл для браузера IE9 або нижче. Для цього Ви можете використовувати наступний параметр:

Це викликає CSS файл із комплекту, який буде включений до сторінки, використовуючи наступні HTML теги:

Для того, щоб обернути створене CSS посилання в тег, Ви можете налаштувати cssOptions таким чином:

Встановлення ресурсів Bower та NPM #

Щоб отримати таку можливість, потрібно налаштувати Composer. Існує два варіанти:

Використовуючи репозиторій asset-packagist #

Цей спосіб задовольняє потреби більшості проектів, які потребують Bower або NPM пакети.

Note: Починаючи з версії 2.0.13, Basic і Advanced шаблони додатків вже налаштовані для використання asset-packagist, так що цей розділ можна пропустити.

У файлі composer.json вашого проекту додайте наступні рядки:

Відвідайте asset-packagist.org, щоб дізнатися, як це працює.

Використовуючи fxp/composer-asset-plugin #

У порівнянні з asset-packagist composer-asset-plugin не вимагає змінюватиконфігурацію програми. Натомість потрібно встановити спеціальний глобальний пакет Composer, виконавши наступну команду:

Ця команда встановлює composer asset plugin глобально, що дозволить встановлювати залежності Bower і NPM. Після встановлення всі проекти на вашому комп'ютері будуть підтримувати інсталяцію Bower та NPM пакетів, описаних у composer.json .

Додайте наступні рядки до composer.json вашого проекту, щоб вказати директорії, в які будуть встановлені необхідні Bower і NPM пакети:

Note: fxp/composer-asset-plugin виконує команду composer update істотно довше, ніж asset-packagist.

Після налаштування Composer для підтримки Bower та NPM пакетів:

Це тому, що Composer встановлює Bower чи NPM пакет у директорію, відповідну цим псевдонімам.

Note: У деяких пакетах файли дистрибутива можуть знаходитися в піддиректорії. У цьому випадку Ви повинні задати піддиректорію як значення sourcePath. Наприклад, yii\web\JqueryAsset використовує @bower/jquery/dist замість @bower/jquery .

Використання Комплекту Ресурсів #

Для використання комплекту ресурсів, зареєструйте його у поданні викликавши метод yii\web\AssetBundle::register(). Наприклад, комплект ресурсів у поданні може бути зареєстрований таким чином:

Info: Метод yii\web\AssetBundle::register() повертає об'єкт комплекту ресурсів, що містить інформацію про публіковані ресурси, такі як basePath або baseUrl.

Якщо Ви реєструєте набір ресурсів в інших місцях (тобто не в поданні), Ви повинні забезпечити необхідний об'єкт представлення. Наприклад, при реєстрації комплекту ресурсів у класі widget, Ви можете взяти за об'єкт представлення $this->view.