Класс 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
$widgetsнеобязательно [] - См. метод 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–2018 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.5/class-Cake.View.Widget.WidgetRegistry.html