Class ViewBuilder

Provides an API for iteratively building a view up.

Once you have configured the view and established all the context you can create a view instance with build().

Namespace: Cake\View

Properties summary

  • $_autoLayout protected
    bool

    Whether or not autoLayout should be enabled.

  • $_className protected
    string|null

    The view class name to use.

  • $_helpers protected
    array

    The helpers to use

  • $_layout protected
    string|null

    The layout name to render.

  • $_layoutPath protected
    string|null

    The layout path to build the view with.

  • $_name protected
    string|null

    The view variables to use

  • $_options protected
    array

    Additional options used when constructing the view.

  • $_plugin protected
    string|null

    The plugin name to use.

  • $_template protected
    string|null

    The template file to render.

  • $_templatePath protected
    string|null

    The subdirectory to the template.

  • $_theme protected
    string|null

    The theme name to use.

  • $_vars protected
    array

    View vars

Method Summary

  • _checkViewVars() protected

    Iterates through hash to clean up and normalize.

  • build() public

    Using the data in the builder, create a view instance.

  • createFromArray() public

    Configures a view builder instance from serialized config.

  • disableAutoLayout() public

    Turns off CakePHP's conventional mode of applying layout files.

  • enableAutoLayout() public

    Turns on or off CakePHP's conventional mode of applying layout files.

  • getClassName() public

    Gets the view classname.

  • getHelpers() public

    Gets the helpers to use.

  • getLayout() public

    Gets the name of the layout file to render the view inside of.

  • getLayoutPath() public

    Gets path for layout files.

  • getName() public

    Gets the view name.

  • getOption() public

    Get view option.

  • getOptions() public

    Gets additional options for the view.

  • getPlugin() public

    Gets the plugin name to use.

  • getTemplate() public

    Gets the name of the view file to render. The name specified is the filename in /templates/ without the .php extension.

  • getTemplatePath() public

    Gets path for template files.

  • getTheme() public

    Gets the view theme to use.

  • getVar() public

    Get view var

  • getVars() public

    Get all view vars.

  • hasVar() public

    Check if view var is set.

  • isAutoLayoutEnabled() public

    Returns if CakePHP's conventional mode of applying layout files is enabled.

  • jsonSerialize() public

    Serializes the view builder object to a value that can be natively serialized and re-used to clone this builder instance.

  • serialize() public

    Serializes the view builder object.

  • setClassName() public

    Sets the view classname.

  • setHelpers() public

    Sets the helpers to use.

  • setLayout() public

    Sets the name of the layout file to render the view inside of.

  • setLayoutPath() public

    Sets path for layout files.

  • setName() public

    Sets the view name.

  • setOption() public

    Set view option.

  • setOptions() public

    Sets additional options for the view.

  • setPlugin() public

    Sets the plugin name to use.

  • setTemplate() public

    Sets the name of the view file to render. The name specified is the filename in /templates/ without the .php extension.

  • setTemplatePath() public

    Sets path for template files.

  • setTheme() public

    Sets the view theme to use.

  • setVar() public

    Saves a variable for use inside a template.

  • setVars() public

    Saves view vars for use inside templates.

  • unserialize() public

    Unserializes the view builder object.

Method Detail

_checkViewVars() protected

_checkViewVars(mixed $item, string $key)

Iterates through hash to clean up and normalize.

Parameters

mixed $item

Reference to the view var value.

string $key

View var key.

Throws

RuntimeException

build() public

build(array $vars, ?\Cake\Http\ServerRequest $request, ?\Cake\Http\Response $response, ?\Cake\Event\EventManagerInterface $events)

Using the data in the builder, create a view instance.

If className() is null, App\View\AppView will be used. If that class does not exist, then Cake\View\View will be used.

Parameters

array $vars optional

The view variables/context to use.

\Cake\Http\ServerRequest|null $request optional

The request to use.

\Cake\Http\Response|null $response optional

The response to use.

\Cake\Event\EventManagerInterface|null $events optional

The event manager to use.

Returns

\Cake\View\View

Throws

Cake\View\Exception\MissingViewException

createFromArray() public

createFromArray(array $config)

Configures a view builder instance from serialized config.

Parameters

array $config

View builder configuration array.

Returns

$this

Configured view builder instance.

disableAutoLayout() public

disableAutoLayout()

Turns off CakePHP's conventional mode of applying layout files.

Setting to off means that layouts will not be automatically applied to rendered views.

Returns

$this

enableAutoLayout() public

enableAutoLayout(bool $enable)

Turns on or off CakePHP's conventional mode of applying layout files.

On by default. Setting to off means that layouts will not be automatically applied to rendered views.

Parameters

bool $enable optional

Boolean to turn on/off.

Returns

$this

getClassName() public

getClassName()

Gets the view classname.

Returns

string|null

getHelpers() public

getHelpers()

Gets the helpers to use.

Returns

array

getLayout() public

getLayout()

Gets the name of the layout file to render the view inside of.

Returns

string|null

getLayoutPath() public

getLayoutPath()

Gets path for layout files.

Returns

string|null

getName() public

getName()

Gets the view name.

Returns

string|null

getOption() public

getOption(string $name)

Get view option.

Parameters

string $name

The name of the option.

Returns

mixed

getOptions() public

getOptions()

Gets additional options for the view.

Returns

array

getPlugin() public

getPlugin()

Gets the plugin name to use.

Returns

string|null

getTemplate() public

getTemplate()

Gets the name of the view file to render. The name specified is the filename in /templates/ without the .php extension.

Returns

string|null

getTemplatePath() public

getTemplatePath()

Gets path for template files.

Returns

string|null

getTheme() public

getTheme()

Gets the view theme to use.

Returns

string|null

getVar() public

getVar(string $name)

Get view var

Parameters

string $name

Var name

Returns

mixed

The var value or null if unset.

getVars() public

getVars()

Get all view vars.

Returns

array

hasVar() public

hasVar(string $name)

Check if view var is set.

Parameters

string $name

Var name

Returns

bool

isAutoLayoutEnabled() public

isAutoLayoutEnabled()

Returns if CakePHP's conventional mode of applying layout files is enabled.

Disabled means that layouts will not be automatically applied to rendered views.

Returns

bool

jsonSerialize() public

jsonSerialize()

Serializes the view builder object to a value that can be natively serialized and re-used to clone this builder instance.

There are limitations for viewVars that are good to know:

  • ORM\Query executed and stored as resultset
  • SimpleXMLElements stored as associative array
  • Exceptions stored as strings
  • Resources, \Closure and \PDO are not supported.

Returns

array

Serializable array of configuration properties.

serialize() public

serialize()

Serializes the view builder object.

Returns

string

setClassName() public

setClassName(?string $name)

Sets the view classname.

Accepts either a short name (Ajax) a plugin name (MyPlugin.Ajax) or a fully namespaced name (App\View\AppView) or null to use the View class provided by CakePHP.

Parameters

string|null $name

The class name for the view.

Returns

$this

setHelpers() public

setHelpers(array $helpers, bool $merge)

Sets the helpers to use.

Parameters

array $helpers

Helpers to use.

bool $merge optional

Whether or not to merge existing data with the new data.

Returns

$this

setLayout() public

setLayout(?string $name)

Sets the name of the layout file to render the view inside of.

The name specified is the filename of the layout in /templates/Layout without the .php extension.

Parameters

string|null $name

Layout file name to set.

Returns

$this

setLayoutPath() public

setLayoutPath(?string $path)

Sets path for layout files.

Parameters

string|null $path

Path for layout files.

Returns

$this

setName() public

setName(?string $name)

Sets the view name.

Parameters

string|null $name

The name of the view, or null to remove the current name.

Returns

$this

setOption() public

setOption(string $name, mixed $value)

Set view option.

Parameters

string $name

The name of the option.

mixed $value

Value to set.

Returns

$this

setOptions() public

setOptions(array $options, bool $merge)

Sets additional options for the view.

This lets you provide custom constructor arguments to application/plugin view classes.

Parameters

array $options

An array of options.

bool $merge optional

Whether or not to merge existing data with the new data.

Returns

$this

setPlugin() public

setPlugin(?string $name)

Sets the plugin name to use.

Parameters

string|null $name

Plugin name. Use null to remove the current plugin name.

Returns

$this

setTemplate() public

setTemplate(?string $name)

Sets the name of the view file to render. The name specified is the filename in /templates/ without the .php extension.

Parameters

string|null $name

View file name to set, or null to remove the template name.

Returns

$this

setTemplatePath() public

setTemplatePath(?string $path)

Sets path for template files.

Parameters

string|null $path

Path for view files.

Returns

$this

setTheme() public

setTheme(?string $theme)

Sets the view theme to use.

Parameters

string|null $theme

Theme name. Use null to remove the current theme.

Returns

$this

setVar() public

setVar(string $name, mixed $value)

Saves a variable for use inside a template.

Parameters

string $name

A string or an array of data.

mixed $value optional

Value.

Returns

$this

setVars() public

setVars(array $data, bool $merge)

Saves view vars for use inside templates.

Parameters

array $data

Array of data.

bool $merge optional

Whether to merge with existing vars, default true.

Returns

$this

unserialize() public

unserialize(mixed $data)

Unserializes the view builder object.

Parameters

string $data

Serialized string.

Property Detail

$_autoLayout protected

Whether or not autoLayout should be enabled.

Type

bool

$_className protected

The view class name to use.

Can either use plugin notation, a short name or a fully namespaced classname.

Type

string|null

$_helpers protected

The helpers to use

Type

array

$_layout protected

The layout name to render.

Type

string|null

$_layoutPath protected

The layout path to build the view with.

Type

string|null

$_name protected

The view variables to use

Type

string|null

$_options protected

Additional options used when constructing the view.

This options array lets you provide custom constructor arguments to application/plugin view classes.

Type

array

$_plugin protected

The plugin name to use.

Type

string|null

$_template protected

The template file to render.

Type

string|null

$_templatePath protected

The subdirectory to the template.

Type

string|null

$_theme protected

The theme name to use.

Type

string|null

$_vars protected

View vars

Type

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.0/class-Cake.View.ViewBuilder.html