Класс PluginCollection
Коллекция плагинов
Хранит объекты плагинов, загруженные в приложение, и предоставляет методы для итерации и поиска плагинов по критериям.
Этот класс реализует интерфейс Iterator, позволяя итерировать по плагинам, обрабатывая ситуацию, когда метод хука плагина (обычно bootstrap) загружает другой плагин во время итерации.
Хотя его реализация поддерживает вложенную итерацию, она не поддерживает использование continue или break внутри циклов.
Краткое описание свойств
- $loopDepth protected
intГлубина цикла
- $names protected
array<string>Названия плагинов
- $plugins protected
arrayCake\Core\PluginInterface>Список плагинов
- $positions protected
array<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(arrayCake\Core\PluginInterface> $plugins = [])
Конструктор
Параметры
-
arrayCake\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<string, mixed> $config = []): Cake\Core\PluginInterface
Создать экземпляр плагина из имени/имени класса и конфигурации.
Параметры
-
string$name Имя плагина или имя класса
-
array<string, mixed>$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
Названия плагинов
Тип
array<string>$plugins protected
Список плагинов
Тип
arrayCake\Core\PluginInterface>$positions protected
Стек позиций итератора.
Тип
array<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.3/class-Cake.Core.PluginCollection.html