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
__construct( Cake\View\StringTemplate $templates , Cake\View\View $view , string|array $widgets  )
_resolveWidget( mixed $widget )
Resolves a widget spec into an instance.
when class cannot be loaded or does not implement WidgetInterface.
add( array $widgets )
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.
Clear the registry and reset the widgets.
get( string $name )
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.
load( string $file )
Load a config file containing widgets.
Widget files should define a
$config variable containing all the widgets to load. Loaded widgets will be merged with existing widgets.
Array of widgets + widget configuration.
© 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.