\Cake\ViewStringTemplate

Provides an interface for registering and inserting content into simple logic-less string templates.

Used by several helpers to provide simple flexible templates for generating HTML and other content.

Summary

Methods
Properties
Constants
setConfig()
getConfig()
config()
configShallow()
__construct()
push()
pop()
add()
load()
remove()
format()
formatAttributes()
addClass()
No public properties found
No constants found
_configRead()
_configWrite()
_configDelete()
_compileTemplates()
_formatAttribute()
$_config
$_configInitialized
$_compactAttributes
$_defaultConfig
$_configStack
$_compiled
N/A
No private methods found
No private properties found
N/A

Properties

$_config

$_config : array

Runtime config

Type

array

$_configInitialized

$_configInitialized : boolean

Whether the config property has already been configured with defaults

Type

boolean

$_compactAttributes

$_compactAttributes : array

List of attributes that can be made compact.

Type

array

$_defaultConfig

$_defaultConfig : array

The default templates this instance holds.

Type

array

$_configStack

$_configStack : array

A stack of template sets that have been stashed temporarily.

Type

array

$_compiled

$_compiled : array

Contains the list of compiled templates

Type

array

Methods

setConfig()

setConfig(string|array  $key, mixed|null  $value = null, boolean  $merge = true) : $this

Sets the config.

Usage

Setting a specific value:

$this->setConfig('key', $value);

Setting a nested value:

$this->setConfig('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value

The value to set.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

Throws

\Cake\Core\Exception\Exception

When trying to set a key that is invalid.

Returns

$this

getConfig()

getConfig(string|null  $key = null, mixed  $default = null) : mixed

Returns the config.

Usage

Reading the whole config:

$this->getConfig();

Reading a specific value:

$this->getConfig('key');

Reading a nested value:

$this->getConfig('some.nested.key');

Reading with default value:

$this->getConfig('some-key', 'default-value');

Parameters

string|null $key

The key to get or null for the whole config.

mixed $default

The return value when the key does not exist.

Returns

mixed —

Config value being read.

config()

config(string|array|null  $key = null, mixed|null  $value = null, boolean  $merge = true) : mixed

Gets/Sets the config.

Usage

Reading the whole config:

$this->config();

Reading a specific value:

$this->config('key');

Reading a nested value:

$this->config('some.nested.key');

Setting a specific value:

$this->config('key', $value);

Setting a nested value:

$this->config('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->config(['one' => 'value', 'another' => 'value']);

Parameters

string|array|null $key

The key to get/set, or a complete array of configs.

mixed|null $value

The value to set.

boolean $merge

Whether to recursively merge or overwrite existing config, defaults to true.

Throws

\Cake\Core\Exception\Exception

When trying to set a key that is invalid.

Returns

mixed —

Config value being read, or the object itself on write operations.

configShallow()

configShallow(string|array  $key, mixed|null  $value = null) : $this

Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.

Setting a specific value:

$this->configShallow('key', $value);

Setting a nested value:

$this->configShallow('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Parameters

string|array $key

The key to set, or a complete array of configs.

mixed|null $value

The value to set.

Returns

$this

__construct()

__construct(array  $config = array()) 

Constructor.

Parameters

array $config

A set of templates to add.

push()

push() : void

Push the current templates into the template stack.

pop()

pop() : void

Restore the most recently pushed set of templates.

add()

add(array  $templates) : $this

Registers a list of templates by name

Example:

$templater->add([
  'link' => '<a href="{{url}}">{{title}}</a>'
  'button' => '<button>{{text}}</button>'
]);

Parameters

array $templates

An associative list of named templates.

Returns

$this

load()

load(string  $file) : void

Load a config file containing templates.

Template files should define a $config variable containing all the templates to load. Loaded templates will be merged with existing templates.

Parameters

string $file

The file to load

remove()

remove(string  $name) : void

Remove the named template.

Parameters

string $name

The template to remove.

format()

format(string  $name, array  $data) : string|null

Format a template string with $data

Parameters

string $name

The template name.

array $data

The data to insert.

Returns

string|null —

Formatted string or null if template not found.

formatAttributes()

formatAttributes(array|null  $options, array|null  $exclude = null) : string

Returns a space-delimited string with items of the $options array. If a key of $options array happens to be one of those listed in `StringTemplate::$_compactAttributes` and its value is one of:

  • '1' (string)
  • 1 (integer)
  • true (boolean)
  • 'true' (string)

Then the value will be reset to be identical with key's name. If the value is not one of these 4, the parameter is not output.

'escape' is a special option in that it controls the conversion of attributes to their HTML-entity encoded equivalents. Set to false to disable HTML-encoding.

If value for any option key is set to null or false, that option will be excluded from output.

This method uses the 'attribute' and 'compactAttribute' templates. Each of these templates uses the name and value variables. You can modify these templates to change how attributes are formatted.

Parameters

array|null $options

Array of options.

array|null $exclude

Array of options to be excluded, the options here will not be part of the return.

Returns

string —

Composed attributes.

addClass()

addClass(array|string  $input, array|string  $newClass, string  $useIndex = 'class') : array|string

Adds a class and returns a unique list either in array or space separated

Parameters

array|string $input

The array or string to add the class to

array|string $newClass

the new class or classes to add

string $useIndex

if you are inputting an array with an element other than default of 'class'.

Returns

array|string

_configRead()

_configRead(string|null  $key) : mixed

Reads a config key.

Parameters

string|null $key

Key to read.

Returns

mixed

_configWrite()

_configWrite(string|array  $key, mixed  $value, boolean|string  $merge = false) : void

Writes a config key.

Parameters

string|array $key

Key to write to.

mixed $value

Value to write.

boolean|string $merge

True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.

Throws

\Cake\Core\Exception\Exception

if attempting to clobber existing config

_configDelete()

_configDelete(string  $key) : void

Deletes a single config key.

Parameters

string $key

Key to delete.

Throws

\Cake\Core\Exception\Exception

if attempting to clobber existing config

_compileTemplates()

_compileTemplates(array  $templates = array()) : void

Compile templates into a more efficient printf() compatible format.

Parameters

array $templates

The template names to compile. If empty all templates will be compiled.

_formatAttribute()

_formatAttribute(string  $key, string|array  $value, boolean  $escape = true) : string

Formats an individual attribute, and returns the string value of the composed attribute.

Works with minimized attributes that have the same value as their name such as 'disabled' and 'checked'

Parameters

string $key

The name of the attribute to create

string|array $value

The value of the attribute to create.

boolean $escape

Define if the value must be escaped

Returns

string —

The composed attribute.