On this page
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()
.
Property Summary
-
$_autoLayout protected
bool
Whether autoLayout should be enabled.
-
$_className protected
string|null
The view class name to use. Can either use plugin notation, a short name or a fully namespaced classname.
-
$_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<string, mixed>
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<string, mixed>
View vars
Method Summary
__serialize() public
Magic method used for serializing the view builder object.
__unserialize() public
Magic method used to rebuild the view builder object.
_checkViewVars() protected
Iterates through hash to clean up and normalize.
addHelper() public
Adds a helper to use.
addHelpers() public
Adds helpers to use by merging with existing ones.
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. On by default. Setting to off means that layouts will not be automatically applied to rendered views.
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/<SubFolder>/
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. Disabled means that layouts will not be automatically applied to rendered views.
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. The name specified is the filename of the layout in
templates/layout/
without the .php extension.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/<SubFolder>/
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
__serialize() public
__serialize(): array
Magic method used for serializing the view builder object.
Returns
array
__unserialize() public
__unserialize(array<string, mixed> $data): void
Magic method used to rebuild the view builder object.
Parameters
array<string, mixed>
$data-
Data array.
Returns
void
_checkViewVars() protected
_checkViewVars(mixed $item, string $key): void
Iterates through hash to clean up and normalize.
Parameters
mixed
$item-
Reference to the view var value.
string
$key-
View var key.
Returns
void
Throws
RuntimeException
addHelper() public
addHelper(string $helper, array<string, mixed> $options = []): $this
Adds a helper to use.
Parameters
string
$helper-
Helper to use.
array<string, mixed>
$options optional-
Options.
Returns
$this
addHelpers() public
addHelpers(array $helpers): $this
Adds helpers to use by merging with existing ones.
Parameters
array
$helpers-
Helpers to use.
Returns
$this
build() public
build(array<string, mixed> $vars = [], Cake\Http\ServerRequest|null $request = null, Cake\Http\Response|null $response = null, Cake\Event\EventManagerInterface|null $events = null): Cake\View\View
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 {@link \Cake\View\View} will be used.
Parameters
array<string, mixed>
$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<string, mixed> $config): $this
Configures a view builder instance from serialized config.
Parameters
array<string, mixed>
$config-
View builder configuration array.
Returns
$this
disableAutoLayout() public
disableAutoLayout(): $this
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 = true): $this
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(): string|null
Gets the view classname.
Returns
string|null
getHelpers() public
getHelpers(): array
Gets the helpers to use.
Returns
array
getLayout() public
getLayout(): string|null
Gets the name of the layout file to render the view inside of.
Returns
string|null
getLayoutPath() public
getLayoutPath(): string|null
Gets path for layout files.
Returns
string|null
getName() public
getName(): string|null
Gets the view name.
Returns
string|null
getOption() public
getOption(string $name): mixed
Get view option.
Parameters
string
$name-
The name of the option.
Returns
mixed
getOptions() public
getOptions(): array<string, mixed>
Gets additional options for the view.
Returns
array<string, mixed>
getPlugin() public
getPlugin(): string|null
Gets the plugin name to use.
Returns
string|null
getTemplate() public
getTemplate(): string|null
Gets the name of the view file to render. The name specified is the filename in templates/<SubFolder>/
without the .php extension.
Returns
string|null
getTemplatePath() public
getTemplatePath(): string|null
Gets path for template files.
Returns
string|null
getTheme() public
getTheme(): string|null
Gets the view theme to use.
Returns
string|null
getVar() public
getVar(string $name): mixed
Get view var
Parameters
string
$name-
Var name
Returns
mixed
getVars() public
getVars(): array<string, mixed>
Get all view vars.
Returns
array<string, mixed>
hasVar() public
hasVar(string $name): bool
Check if view var is set.
Parameters
string
$name-
Var name
Returns
bool
isAutoLayoutEnabled() public
isAutoLayoutEnabled(): bool
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(): array
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
serialize() public
serialize(): string
Serializes the view builder object.
Returns
string
setClassName() public
setClassName(string|null $name): $this
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 = true): $this
Sets the helpers to use.
Parameters
array
$helpers-
Helpers to use.
bool
$merge optional-
Whether to merge existing data with the new data.
Returns
$this
setLayout() public
setLayout(string|null $name): $this
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|null $path): $this
Sets path for layout files.
Parameters
string|null
$path-
Path for layout files.
Returns
$this
setName() public
setName(string|null $name): $this
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): $this
Set view option.
Parameters
string
$name-
The name of the option.
mixed
$value-
Value to set.
Returns
$this
setOptions() public
setOptions(array<string, mixed> $options, bool $merge = true): $this
Sets additional options for the view.
This lets you provide custom constructor arguments to application/plugin view classes.
Parameters
array<string, mixed>
$options-
An array of options.
bool
$merge optional-
Whether to merge existing data with the new data.
Returns
$this
setPlugin() public
setPlugin(string|null $name): $this
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|null $name): $this
Sets the name of the view file to render. The name specified is the filename in templates/<SubFolder>/
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|null $path): $this
Sets path for template files.
Parameters
string|null
$path-
Path for view files.
Returns
$this
setTheme() public
setTheme(string|null $theme): $this
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 = null): $this
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<string, mixed> $data, bool $merge = true): $this
Saves view vars for use inside templates.
Parameters
array<string, mixed>
$data-
Array of data.
bool
$merge optional-
Whether to merge with existing vars, default true.
Returns
$this
unserialize() public
unserialize(string $data): void
Unserializes the view builder object.
Parameters
string
$data-
Serialized string.
Returns
void
Property Detail
$_autoLayout protected
Whether 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.
These options array lets you provide custom constructor arguments to application/plugin view classes.
Type
array<string, mixed>
$_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<string, mixed>
© 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.4/class-Cake.View.ViewBuilder.html