Класс yii\web\AssetManager
| Наследование | yii\web\AssetManager » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/web/AssetManager.php |
AssetManager управляет конфигурацией и загрузкой пакетов ресурсов.
AssetManager настраивается как компонент приложения в yii\web\Application по умолчанию. Вы можете получить доступ к этому экземпляру через Yii::$app->assetManager.
Вы можете изменить его конфигурацию, добавив массив в вашу конфигурацию приложения в components, как показано в следующем примере:
'assetManager' => [
'bundles' => [
// you can override AssetBundle configs here
],
]
Для получения более подробной информации и справочных данных по AssetManager, см. статью справочника по ресурсам.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $afterCopy | callback | Обратный вызов PHP, который вызывается после успешного копирования подкаталога или файла. | yii\web\AssetManager |
| $appendTimestamp | boolean | Добавлять ли отметку времени к URL каждого опубликованного ресурса. | yii\web\AssetManager |
| $assetMap | массив | Сопоставление исходных файлов ресурсов (ключи) с целевыми файлами ресурсов (значения). | yii\web\AssetManager |
| $basePath | строка | Корневой каталог, хранящий опубликованные файлы ресурсов. | yii\web\AssetManager |
| $baseUrl | строка | Базовый URL, через который можно получить доступ к опубликованным файлам ресурсов. | yii\web\AssetManager |
| $beforeCopy | callback | Обратный вызов PHP, который вызывается перед копированием каждого подкаталога или файла. | yii\web\AssetManager |
| $behaviors | yii\base\Behavior[] | Список присоединённых к этому компоненту поведений. | yii\base\Component |
| $bundles | массив|boolean | Список конфигураций пакетов ресурсов. | yii\web\AssetManager |
| $converter | yii\web\AssetConverterInterface | Конвертер ресурсов. | yii\web\AssetManager |
| $dirMode | целое число | Разрешения, которые будут установлены для вновь созданных каталогов ресурсов. | yii\web\AssetManager |
| $fileMode | целое число | Разрешения, которые будут установлены для вновь опубликованных файлов ресурсов. | yii\web\AssetManager |
| $forceCopy | boolean | Копировать каталог, даже если он уже существует в целевом каталоге. | yii\web\AssetManager |
| $hashCallback | callable | Обратный вызов, который будет вызван для создания хэша для генерации каталога ресурсов. | yii\web\AssetManager |
| $linkAssets | boolean | Использовать символическую ссылку для публикации файлов ресурсов. | yii\web\AssetManager |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым этот компонент должен вести себя. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Открепляет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Открепляет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| getAssetPath() | Возвращает фактический путь к файлу для указанного ресурса. | yii\web\AssetManager |
| getAssetUrl() | Возвращает фактический URL для указанного ресурса. | yii\web\AssetManager |
| getBehavior() | Возвращает объект поведения с указанным именем. | yii\base\Component |
| getBehaviors() | Возвращает все прикрепленные к этому компоненту поведения. | yii\base\Component |
| getBundle() | Возвращает указанный пакет ресурсов. | yii\web\AssetManager |
| getConverter() | Возвращает конвертер ресурсов. | yii\web\AssetManager |
| getPublishedPath() | Возвращает опубликованный путь к файлу. | yii\web\AssetManager |
| getPublishedUrl() | Возвращает URL опубликованного пути к файлу. | yii\web\AssetManager |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикрепленный к событию с указанным именем. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует компонент. | yii\web\AssetManager |
| off() | Открепляет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| publish() | Опубликовывает файл или директорию. | yii\web\AssetManager |
| setConverter() | Устанавливает конвертер ресурсов. | yii\web\AssetManager |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| hash() | Генерирует хэш CRC32 для пути к директории. Коллизии выше, чем у MD5, но генерируется значительно меньшая строка хэша. | yii\web\AssetManager |
| loadBundle() | Загружает класс пакета ресурсов по имени | yii\web\AssetManager |
| loadDummyBundle() | Загружает dummy пакет по имени | yii\web\AssetManager |
| publishDirectory() | Опубликовывает директорию. | yii\web\AssetManager |
| publishFile() | Опубликовывает файл. | yii\web\AssetManager |
| resolveAsset() | yii\web\AssetManager |
Подробное описание свойств
$afterCopy общедоступное свойство
Обратный вызов PHP, который вызывается после успешного копирования поддиректории или файла. Этот параметр используется только при публикации директории. Подпись обратного вызова такая же, как у $beforeCopy. Этот параметр передаётся в качестве параметра afterCopy к yii\helpers\FileHelper::copyDirectory().
public callback $afterCopy = null
$appendTimestamp общедоступное свойство (доступно с версии 2.0.3)
Добавлять ли отметку времени к URL каждого опубликованного ресурса. Если это true, URL опубликованного ресурса может выглядеть как /path/to/asset?v=timestamp, где timestamp — последняя метка времени изменения опубликованного файла ресурса. Обычно вы захотите установить это свойство в true, когда вы включили кэширование HTTP для ресурсов, потому что это позволяет вам сбросить кэш, когда ресурсы обновляются.
public boolean $appendTimestamp = false
$assetMap общедоступное свойство
Сопоставление исходных файлов ресурсов (ключи) с целевыми файлами ресурсов (значения).
Это свойство предназначено для поддержки исправления неверных путей к файлам ресурсов в некоторых пакетах ресурсов. Когда пакет ресурсов регистрируется в представлении, каждый относительный файл ресурса в массивах css и js будет проверен по этому отображению. Если какой-либо из ключей будет найден в качестве последней части имени файла ресурса (который префиксруется с yii\web\AssetBundle::$sourcePath, если доступно), соответствующее значение заменит ресурс и будет зарегистрировано в представлении. Например, файл ресурса my/path/to/jquery.js соответствует ключу jquery.js.
Обратите внимание, что целевые файлы ресурсов должны быть абсолютными URL, URL, относящимися к домену (начинающимися с '/'), или путями, относительными к $baseUrl и $basePath.
В следующем примере любые ресурсы, заканчивающиеся на jquery.min.js будут заменены на jquery/dist/jquery.js , которое относительно $baseUrl и $basePath.
[
'jquery.min.js' => 'jquery/dist/jquery.js',
]
Вы также можете использовать псевдонимы при указании значения отображения, например:
[
'jquery.min.js' => '@web/js/jquery/jquery.js',
]
public array $assetMap = []
$basePath общедоступное свойство
Корневой каталог, хранящий опубликованные файлы ресурсов.
public string $basePath = '@webroot/assets'
$baseUrl общедоступное свойство
Базовый URL, через который можно получить доступ к опубликованным файлам ресурсов.
public string $baseUrl = '@web/assets'
$beforeCopy общедоступное свойство
Обратный вызов PHP, который вызывается перед копированием каждой подпапки или файла. Этот параметр используется только при публикации каталога. Если обратный вызов возвращает false, операция копирования подкаталога или файла будет отменена.
Подпись обратного вызова должна быть: function ($from, $to), где $from — подкаталог или файл, подлежащий копированию, а $to — целевой каталог копирования.
Это передаётся как параметр beforeCopy в yii\helpers\FileHelper::copyDirectory().
public callback $beforeCopy = null
$bundles общедоступное свойство
Список конфигураций пакетов ресурсов. Это свойство предназначено для настройки пакетов ресурсов. Когда пакет загружается с помощью getBundle(), если здесь указана соответствующая конфигурация, она будет применена к пакету.
Ключи массива — имена пакетов ресурсов, которые обычно являются именами классов пакетов ресурсов без ведущей косой черты. Значения массива — соответствующие конфигурации. Если значение равно false, это означает, что соответствующий пакет ресурсов отключен, и getBundle() должен возвращать null.
Если это свойство имеет значение false, это означает, что вся функция пакетов ресурсов отключена, и getBundle() всегда будет возвращать null.
Следующий пример демонстрирует, как отключить файл bootstrap css, используемый виджетами Bootstrap (потому что вы хотите использовать собственные стили):
[
'yii\bootstrap\BootstrapAsset' => [
'css' => [],
],
]
public array|boolean $bundles = []
$converter общедоступное свойство
Конвертер ресурсов.
public yii\web\AssetConverterInterface getConverter ( )
public void setConverter ( $value )
$dirMode общедоступное свойство
Разрешения, которые должны быть установлены для вновь созданных каталогов ресурсов. Это значение будет использоваться функцией PHP chmod(). Установка umask не производится. По умолчанию равно 0775, что означает, что каталог читаем и записываем владельцем и группой, но только для чтения другими пользователями.
public integer $dirMode = 0775
$fileMode общедоступное свойство
Разрешения, которые должны быть установлены для вновь опубликованных файлов ресурсов. Это значение будет использоваться функцией PHP chmod(). Установка umask не производится. Если не указано, разрешения будут определены текущей средой.
public integer $fileMode = null
$forceCopy общедоступное свойство
Следует ли скопировать каталог, подлежащий публикации, даже если он найден в целевом каталоге. Этот параметр используется только при публикации каталога. Вы можете установить его в true во время разработки, чтобы убедиться, что опубликованный каталог всегда является актуальным. Не устанавливайте это значение в true на серверах производства, так как это значительно снизит производительность.
public boolean $forceCopy = false
$hashCallback общедоступное свойство (доступно с версии 2.0.6)
Обратный вызов, который будет вызван для создания хэша для генерации каталога ресурсов. Подпись обратного вызова должна быть следующей:
function ($path)
где $path — путь к ресурсу. Обратите внимание, что $path может быть либо каталогом, где находятся файлы ресурсов, либо одним файлом. Для файла CSS, использующего относительный путь в url(), реализация хэша должна использовать путь к каталогу файла вместо пути к файлу, чтобы включить относительные файлы ресурсов в копирование.
Если это не указано, менеджер ресурсов будет использовать по умолчанию CRC32 и filemtime в методе hash.
Пример реализации с использованием хэша MD4:
function ($path) {
return hash('md4', $path);
}
public callable $hashCallback = null
$linkAssets общедоступное свойство
Использовать ли символические ссылки для публикации файлов ресурсов. По умолчанию false, что означает, что файлы ресурсов копируются в $basePath. Использование символических ссылок имеет преимущество, что опубликованные ресурсы всегда будут согласованы с исходными ресурсами, и не требуется операция копирования. Это особенно полезно во время разработки.
Однако существуют особые требования к средам хостинга для использования символических ссылок. В частности, символические ссылки поддерживаются только в Linux/Unix и Windows Vista/2008 или более поздних версиях.
Кроме того, некоторые веб-серверы должны быть должным образом сконфигурированы, чтобы связанные ресурсы были доступны пользователям веб-сайта. Например, для веб-сервера Apache необходимо добавить следующую директиву конфигурации для веб-каталога:
Options FollowSymLinks
public boolean $linkAssets = false
Подробное описание методов
getAssetPath() public method
Возвращает фактический путь к файлу указанного ресурса.
| public string|false getAssetPath ( $bundle, $asset ) | ||
|---|---|---|
| $bundle | yii\web\AssetBundle |
Пакет ресурсов, к которому принадлежит файл ресурса. |
| $asset | string |
Путь к ресурсу. Должен быть одним из ресурсов, перечисленных в yii\web\AssetBundle::$js или yii\web\AssetBundle::$css. |
| return | string|false |
Фактический путь к файлу, или |
getAssetUrl() public method
Возвращает фактический URL для указанного ресурса.
Фактический URL получается путём добавления либо yii\web\AssetBundle::$baseUrl, либо yii\web\AssetManager::$baseUrl к заданному пути к ресурсу.
| public string getAssetUrl ( $bundle, $asset ) | ||
|---|---|---|
| $bundle | yii\web\AssetBundle |
Пакет ресурсов, к которому принадлежит файл ресурса. |
| $asset | string |
Путь к ресурсу. Должен быть одним из ресурсов, перечисленных в yii\web\AssetBundle::$js или yii\web\AssetBundle::$css. |
| return | string |
Фактический URL для указанного ресурса. |
getBundle() public method
Возвращает пакет ресурсов по имени.
Этот метод сначала ищет пакет ресурсов в $bundles. Если не найден, он рассматривает $name как класс пакета ресурсов и создаёт новый экземпляр.
| public yii\web\AssetBundle getBundle ( $name, $publish = true ) | ||
|---|---|---|
| $name | string |
Имя класса пакета ресурсов (без ведущей обратной косой черты) |
| $publish | boolean |
Опубликовать ли файлы ресурса в пакете ресурсов перед его возвращением. Если вы установите это в false, вы должны вручную вызвать |
| return | yii\web\AssetBundle |
Экземпляр пакета ресурсов |
| throws | yii\base\InvalidConfigException |
если $name не относится к валидному пакету ресурсов |
getConverter() public method
Возвращает конвертер ресурсов.
| public yii\web\AssetConverterInterface getConverter ( ) | ||
|---|---|---|
| return | yii\web\AssetConverterInterface |
Конвертер ресурсов. |
getPublishedPath() public method
Возвращает опубликованный путь к файлу или директории.
Этот метод не выполняет публикацию. Он просто сообщает вам, опубликован ли файл или директория и куда он будет помещён.
| public string|false getPublishedPath ( $path ) | ||
|---|---|---|
| $path | string |
Путь к директории или файлу, подлежащему публикации. |
| return | string|false |
Путь к опубликованному файлу. False, если файл или директория не существует. |
getPublishedUrl() public method
Возвращает URL опубликованного файла или директории.
Этот метод не выполняет публикацию. Он просто сообщает вам, опубликован ли файл или директория и каким будет URL для доступа к нему.
| public string|false getPublishedUrl ( $path ) | ||
|---|---|---|
| $path | string |
Путь к директории или файлу, подлежащему публикации. |
| return | string|false |
URL опубликованного файла или директории. False, если файл или директория не существует. |
hash() protected method
Генерирует хэш CRC32 для пути к директории. Коллизии выше, чем у MD5, но генерирует гораздо более короткий хэш.
| protected string hash ( $path ) | ||
|---|---|---|
| $path | string |
Строка, подлежащая хэшированию. |
| return | string |
Хэшированная строка. |
init() public method
Инициализирует компонент.
| public void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException |
если $basePath некорректен |
loadBundle() protected method
Загружает класс пакета ресурсов по имени.
| protected yii\web\AssetBundle loadBundle ( $name, $config = [], $publish = true ) | ||
|---|---|---|
| $name | string |
Имя пакета |
| $config | array |
Конфигурация объекта пакета |
| $publish | boolean |
Если пакет должен быть опубликован |
| throws | yii\base\InvalidConfigException |
если конфигурация некорректна |
loadDummyBundle() protected method
Загружает пакет-заглушку по имени.
| protected yii\web\AssetBundle loadDummyBundle ( $name ) | ||
|---|---|---|
| $name | string | |
publish() public method
Опубликовывает файл или директорию.
Этот метод копирует указанный файл или директорию в $basePath, чтобы его можно было получить через веб-сервер.
Если ресурс является файлом, будет проверена его метка времени изменения, чтобы избежать ненужного копирования файла.
Если ресурс является директорией, все файлы и поддиректории в нём будут опубликованы рекурсивно. Обратите внимание, что в случае, если $forceCopy равен false, метод проверяет только существование целевой директории, чтобы избежать повторяющегося копирования (что очень затратно).
По умолчанию, при публикации директории поддиректории и файлы, имена которых начинаются с точки ".", НЕ будут опубликованы. Если вы хотите изменить это поведение, вы можете указать опцию "beforeCopy", как описано в параметре $options.
Примечание: В редких случаях может возникнуть состояние гонки, что приведёт к однократному проявлению некритической проблемы при создании директории, содержащей опубликованные ресурсы. Эту проблему можно полностью избежать, предварительно "затребовав" все ресурсы, которые должны вызвать вызов "publish()", на этапе развертывания приложения, до того, как система станет активной. Более подробная информация содержится в обсуждении: http://code.google.com/p/yii/issues/detail?id=2579
| public array publish ( $path, $options = [] ) | ||
|---|---|---|
| $path | string |
Публикуемый актив (файл или директория) |
| $options | array |
Параметры, применяемые при публикации директории. Поддерживаются следующие параметры:
|
| return | array |
Путь (путь к директории или файлу) и URL, под которым актив опубликован. |
| throws | yii\base\InvalidParamException |
если актив для публикации не существует. |
publishDirectory() protected method
Публикует директорию.
| protected string[] publishDirectory ( $src, $options ) | ||
|---|---|---|
| $src | string |
Публикуемая директория актива |
| $options | array |
Параметры, применяемые при публикации директории. Поддерживаются следующие параметры:
|
| return | string[] |
Путь к директории и URL, под которым актив опубликован. |
| throws | yii\base\InvalidParamException |
если актив для публикации не существует. |
publishFile() protected method
Публикует файл.
| protected string[] publishFile ( $src ) | ||
|---|---|---|
| $src | string |
Публикуемый файл актива |
| return | string[] |
Путь и URL, под которым актив опубликован. |
| throws | yii\base\InvalidParamException |
если актив для публикации не существует. |
resolveAsset() protected method
| protected string|boolean resolveAsset ( $bundle, $asset ) | ||
|---|---|---|
| $bundle | yii\web\AssetBundle | |
| $asset | string | |
setConverter() public method
Устанавливает преобразователь актива.
| public void setConverter ( $value ) | ||
|---|---|---|
| $value | array|yii\web\AssetConverterInterface |
Преобразователь актива. Может быть объектом, реализующим yii\web\AssetConverterInterface, или конфигурационным массивом для создания объекта преобразователя. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-web-assetmanager.html