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