Spec-Zone.ru › Yii 2.0

Класс 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

Фактический путь к файлу, или false если ресурс указан как абсолютный URL

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, вы должны вручную вызвать AssetBundle::publish() для публикации файлов ресурса.

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

Параметры, применяемые при публикации директории. Поддерживаются следующие параметры:

  • only: массив, список шаблонов, которым должны соответствовать пути файлов для копирования.
  • except: массив, список шаблонов, которым должны соответствовать файлы или директории для исключения из копирования.
  • caseSensitive: boolean, чувствительность шаблонов в "only" и "except" к регистру. По умолчанию true.
  • beforeCopy: callback, PHP-обработчик, вызываемый перед копированием каждой поддиректории или файла. Переопределяет $beforeCopy, если задан.
  • afterCopy: callback, PHP-обработчик, вызываемый после успешного копирования поддиректории или файла. Переопределяет $afterCopy, если задан.
  • forceCopy: boolean, копировать директорию даже если она уже существует в целевой директории. Используется только при публикации директории. Переопределяет $forceCopy, если задан.
return array

Путь (путь к директории или файлу) и URL, под которым актив опубликован.

throws yii\base\InvalidParamException

если актив для публикации не существует.

publishDirectory() protected method

Публикует директорию.

protected string[] publishDirectory ( $src, $options )
$src string

Публикуемая директория актива

$options array

Параметры, применяемые при публикации директории. Поддерживаются следующие параметры:

  • only: массив, список шаблонов, которым должны соответствовать пути файлов для копирования.
  • except: массив, список шаблонов, которым должны соответствовать файлы или директории для исключения из копирования.
  • caseSensitive: boolean, чувствительность шаблонов в "only" и "except" к регистру. По умолчанию true.
  • beforeCopy: callback, PHP-обработчик, вызываемый перед копированием каждой поддиректории или файла. Переопределяет $beforeCopy, если задан.
  • afterCopy: callback, PHP-обработчик, вызываемый после успешного копирования поддиректории или файла. Переопределяет $afterCopy, если задан.
  • forceCopy: boolean, копировать директорию даже если она уже существует в целевой директории. Используется только при публикации директории. Переопределяет $forceCopy, если задан.
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API