Класс WidgetLocator
Реестр/фабрика для виджетов ввода.
Может использоваться помощниками/логикой представления для построения виджетов форм и других HTML-виджетов.
Этот класс обрабатывает отображение между именами и конкретными классами. Он также имеет базовый решатель зависимостей по имени, который позволяет виджетам зависеть друг от друга.
Каждый виджет должен ожидать экземпляр StringTemplate в качестве первого аргумента. Все остальные зависимости будут включены после.
Виджеты могут запросить текущее представление, используя виджет _view.
Краткое описание свойств
- $_templates protected
Cake\View\StringTemplateШаблоны для использования.
- $_view protected
Cake\View\ViewЭкземпляр представления.
- $_widgets protected
arrayМассив виджетов + конфигурация виджетов.
Краткое описание методов
-
__construct() public
Конструктор
-
_resolveWidget() protected
Решает спецификацию виджета в экземпляр.
-
add() public
Добавляет или заменяет существующие экземпляры/конфигурацию виджетов новыми.
-
clear() public
Очистить реестр и сбросить виджеты.
-
get() public
Получить виджет.
-
load() public
Загрузить файл конфигурации, содержащий виджеты.
Подробное описание методов
__construct() public
__construct(Cake\View\StringTemplate $templates, Cake\View\View $view, array $widgets = [])
Конструктор
Параметры
-
Cake\View\StringTemplate$templates Экземпляр шаблонов для использования.
-
Cake\View\View$view Экземпляр представления, который нужно установить как виджет.
-
array$widgets optional См. метод add() для получения дополнительной информации.
_resolveWidget() protected
_resolveWidget(mixed $config): Cake\View\Widget\WidgetInterface
Решает спецификацию виджета в экземпляр.
Параметры
-
mixed$config Конфигурация виджета.
Возвращает
Cake\View\Widget\WidgetInterfaceИсключения
ReflectionExceptionadd() public
add(array $widgets): void
Добавляет или заменяет существующие экземпляры/конфигурацию виджетов новыми.
Массивы виджетов могут быть либо описаниями, либо экземплярами. Например:
$registry->add([ 'label' => new MyLabelWidget($templates), 'checkbox' => ['Fancy.MyCheckbox', 'label'] ]);
Выше показано, как определить виджеты как экземпляры или как описания, включая зависимости. Классы могут быть определены с использованием обозначений плагинов или полных имён пространств имён классов.
Параметры
-
array$widgets Массив виджетов для использования.
Возвращает
voidИсключения
RuntimeExceptionПри отсутствии реализации интерфейса WidgetInterface.
clear() public
clear(): void
Очистить реестр и сбросить виджеты.
Возвращает
voidget() public
get(string $name): Cake\View\Widget\WidgetInterface
Получить виджет.
Будет извлечь уже созданный виджет или создать новый экземпляр, если виджет был определён. Если виджет не определён, будет возвращён экземпляр виджета _default. Исключение будет выброшено, если виджет _default не определён.
Параметры
-
string$name Имя виджета для получения.
Возвращает
Cake\View\Widget\WidgetInterfaceИсключения
RuntimeExceptionпри отсутствии виджета.
load() public
load(string $file): void
Загрузить файл конфигурации, содержащий виджеты.
Файлы виджетов должны определять переменную $config, содержащую все виджеты для загрузки. Загруженные виджеты будут объединены с существующими виджетами.
Параметры
-
string$file Файл для загрузки
Возвращает
voidПодробное описание свойств
$_templates protected
Шаблоны для использования.
Тип
Cake\View\StringTemplate$_view protected
Экземпляр представления.
Тип
Cake\View\View$_widgets protected
Массив виджетов + конфигурация виджетов.
Тип
array
© 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.4/class-Cake.View.Widget.WidgetLocator.html