Класс 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.3/class-Cake.View.Widget.WidgetRegistry.html