Spec-Zone.ru › CakePHP 4.3

Класс WidgetLocator

Реестр/фабрика для виджетов ввода.

Может использоваться помощниками/логикой представления для построения виджетов форм и других HTML-виджетов.

Этот класс обрабатывает отображение между именами и конкретными классами. Он также имеет базовый решатель зависимостей по имени, который позволяет виджетам зависеть друг от друга.

Каждый виджет должен ожидать экземпляр StringTemplate в качестве первого аргумента. Все остальные зависимости будут включены после.

Виджеты могут запросить текущее представление, используя виджет _view.

Пространство имён: Cake\View\Widget

Краткое описание свойств

  • $_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

Исключения

ReflectionException

add() public

add(array $widgets): void

Добавляет или заменяет существующие экземпляры/конфигурацию виджетов новыми.

Массивы виджетов могут быть либо описаниями, либо экземплярами. Например:

$registry->add([
  'label' => new MyLabelWidget($templates),
  'checkbox' => ['Fancy.MyCheckbox', 'label']
]);

Выше показано, как определить виджеты как экземпляры или как описания, включая зависимости. Классы могут быть определены с использованием обозначений плагинов или полных имён пространств имён классов.

Параметры

array $widgets

Массив виджетов для использования.

Возвращает

void

Исключения

RuntimeException
При отсутствии реализации интерфейса WidgetInterface.

clear() public

clear(): void

Очистить реестр и сбросить виджеты.

Возвращает

void

get() 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.3/class-Cake.View.Widget.WidgetLocator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API