Класс PluginCollection
Коллекция плагинов
Хранит объекты плагинов, загруженные в приложение, и предоставляет методы для итерации и поиска плагинов по критериям.
Этот класс реализует интерфейс Iterator, позволяя итерировать по плагинам, обрабатывая ситуацию, когда метод хука плагина (обычно bootstrap) загружает другой плагин во время итерации.
Хотя его реализация поддерживает вложенную итерацию, она не поддерживает использование continue или break внутри циклов.
Краткое описание свойств
- $loopDepth protected
intГлубина цикла
- $names protected
string[]Названия плагинов
- $plugins protected
Cake\Core\PluginInterface[]Список плагинов
- $positions protected
int[]Стек позиций итератора.
Краткое описание методов
-
__construct() public
Конструктор
-
add() public
Добавить плагин в коллекцию
-
clear() public
Удалить все плагины из коллекции
-
count() public
Реализация Countable.
-
create() public
Создать экземпляр плагина из имени/имени класса и конфигурации.
-
current() public
Часть интерфейса Iterator
-
findPath() public
Найти путь к плагину, просматривая данные конфигурации.
-
get() public
Получить плагин по имени.
-
has() public
Проверить, существует ли плагин с указанным именем в коллекции.
-
key() public
Часть интерфейса Iterator
-
loadConfig() protected
Загрузить информацию о пути, хранящуюся в vendor/cakephp-plugins.php
-
next() public
Часть интерфейса Iterator
-
remove() public
Удалить плагин из коллекции, если он существует.
-
rewind() public
Часть интерфейса Iterator
-
valid() public
Часть интерфейса Iterator
-
with() public
Отфильтровать плагины до тех, у которых включен указанный хук.
Подробное описание методов
__construct() public
__construct(Cake\Core\PluginInterface[] $plugins = [])
Конструктор
Параметры
-
Cake\Core\PluginInterface[]$plugins optional Карта плагинов для добавления в коллекцию.
add() public
add(Cake\Core\PluginInterface $plugin): $this
Добавить плагин в коллекцию
Плагины будут индексироваться по их именам.
Параметры
-
Cake\Core\PluginInterface$plugin Плагин для загрузки.
Возвращает
$thisclear() public
clear(): $this
Удалить все плагины из коллекции
Возвращает
$thiscount() public
count(): int
Реализация Countable.
Получить количество плагинов в коллекции.
Возвращает
intcreate() public
create(string $name, array $config = []): Cake\Core\PluginInterface
Создать экземпляр плагина из имени/имени класса и конфигурации.
Параметры
-
string$name Имя плагина или имя класса
-
array$config optional Параметры конфигурации для плагина.
Возвращает
Cake\Core\PluginInterfaceВызывает исключение
Cake\Core\Exception\MissingPluginExceptionКогда экземпляр плагина не может быть создан.
current() public
current(): Cake\Core\PluginInterface
Часть интерфейса Iterator
Возвращает
Cake\Core\PluginInterfacefindPath() public
findPath(string $name): string
Найти путь к плагину, просматривая данные конфигурации.
Будет использовать ключ plugins Configure и возвращаться к перечислению App::path('plugins')
Этот метод не является частью официального публичного API, поскольку плагины без класса плагина постепенно выводятся из эксплуатации.
Параметры
-
string$name Имя плагина для поиска пути. Вернет '' когда плагин не может быть найден.
Возвращает
stringВызывает исключение
Cake\Core\Exception\MissingPluginExceptionкогда путь к плагину не может быть определен.
get() public
get(string $name): Cake\Core\PluginInterface
Получить плагин по имени.
Если плагин еще не загружен, он будет автоматически загружен при первом обращении, и плагины, загруженные таким образом, могут пропустить некоторые методы хуков.
Параметры
-
string$name Плагин для получения.
Возвращает
Cake\Core\PluginInterfaceВызывает исключение
Cake\Core\Exception\MissingPluginExceptionкогда запрашиваются неизвестные плагины.
has() public
has(string $name): bool
Проверить, существует ли плагин с указанным именем в коллекции.
Параметры
-
string$name Плагин с указанным именем.
Возвращает
boolkey() public
key(): string
Часть интерфейса Iterator
Возвращает
stringloadConfig() protected
loadConfig(): void
Загрузить информацию о пути, хранящуюся в vendor/cakephp-plugins.php
Этот файл создается пакетом cakephp/plugin-installer и используется для поиска плагинов в файловой системе, поскольку приложения могут использовать extra.plugin-paths в своем файле composer.json для перемещения плагина за пределы vendor/
Возвращает
voidnext() public
next(): void
Часть интерфейса Iterator
Возвращает
voidremove() public
remove(string $name): $this
Удалить плагин из коллекции, если он существует.
Параметры
-
string$name Плагин с указанным именем.
Возвращает
$thisrewind() public
rewind(): void
Часть интерфейса Iterator
Возвращает
voidvalid() public
valid(): bool
Часть интерфейса Iterator
Возвращает
boolwith() public
with(string $hook): GeneratorCake\Core\PluginInterface[]
Отфильтровать плагины до тех, у которых включен указанный хук.
Параметры
-
string$hook Хук для фильтрации плагинов
Возвращает
GeneratorCake\Core\PluginInterface[]Вызывает исключение
InvalidArgumentExceptionпри недопустимых хуках
Подробное описание свойств
$loopDepth protected
Глубина цикла
Тип
int$names protected
Названия плагинов
Тип
string[]$plugins protected
Список плагинов
Тип
Cake\Core\PluginInterface[]$positions protected
Стек позиций итератора.
Тип
int[]
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Core.PluginCollection.html