$_widgets
$_widgets : array
Array of widgets + widget configuration.
A registry/factory for input widgets.
Can be used by helpers/view logic to build form widgets and other HTML widgets.
This class handles the mapping between names and concrete classes. It also has a basic name based dependency resolver that allows widgets to depend on each other.
Each widget should expect a StringTemplate instance as their first argument. All other dependencies will be included after.
Widgets can ask for the current view by using the _view
widget.
$_templates : \Cake\View\StringTemplate
Templates to use.
__construct(\Cake\View\StringTemplate $templates, \Cake\View\View $view, string|array $widgets = array())
Constructor
\Cake\View\StringTemplate | $templates | Templates instance to use. |
\Cake\View\View | $view | The view instance to set as a widget. |
string|array | $widgets | See add() method for more information. |
add(array $widgets) : void
Adds or replaces existing widget instances/configuration with new ones.
Widget arrays can either be descriptions or instances. For example:
$registry->add([
'label' => new MyLabelWidget($templates),
'checkbox' => ['Fancy.MyCheckbox', 'label']
]);
The above shows how to define widgets as instances or as descriptions including dependencies. Classes can be defined with plugin notation, or fully namespaced class names.
array | $widgets | Array of widgets to use. |
When class does not implement WidgetInterface.
get(string $name) : \Cake\View\Widget\WidgetInterface
Get a widget.
Will either fetch an already created widget, or create a new instance
if the widget has been defined. If the widget is undefined an instance of
the _default
widget will be returned. An exception will be thrown if
the _default
widget is undefined.
string | $name | The widget name to get. |
when widget is undefined.
widget interface class.
_resolveWidget(mixed $widget) : \Cake\View\Widget\WidgetInterface
Resolves a widget spec into an instance.
mixed | $widget | The widget to get |
when class cannot be loaded or does not implement WidgetInterface.
Loading…