/CakePHP 3.5

Class WidgetRegistry

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.

Properties summary

Method Summary

  • __construct() public
  • _resolveWidget() protected
    Resolves a widget spec into an instance.
  • add() public
    Adds or replaces existing widget instances/configuration with new ones.
  • clear() public
    Clear the registry and reset the widgets.
  • get() public
    Get a widget.
  • load() public
    Load a config file containing widgets.

Method Detail

__construct()source public

__construct( Cake\View\StringTemplate $templates , Cake\View\View $view , string|array $widgets [] )



Cake\View\StringTemplate $templates
Templates instance to use.
Cake\View\View $view
The view instance to set as a widget.
string|array $widgets optional []
See add() method for more information.

_resolveWidget()source protected

_resolveWidget( mixed $widget )

Resolves a widget spec into an instance.


mixed $widget
The widget to get





when class cannot be loaded or does not implement WidgetInterface.

add()source public

add( array $widgets )

Adds or replaces existing widget instances/configuration with new ones.

Widget arrays can either be descriptions or instances. For example:

  '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.

clear()source public

clear( )

Clear the registry and reset the widgets.

get()source public

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.


string $name
The widget name to get.


widget interface class.


when widget is undefined.

load()source public

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.


string $file
The file to load

Properties detail


protected Cake\View\StringTemplate

Templates to use.


protected array

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.