Повний посібник (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.