Class StringTemplate
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.
- Cake\View\StringTemplate uses Cake\Core\InstanceConfigTrait
Properties summary
-
$_compactAttributes
protectedarray
List of attributes that can be made compact. -
$_compiled
protectedarray
Contains the list of compiled templates -
$_configStack
protectedarray
A stack of template sets that have been stashed temporarily. -
$_defaultConfig
protectedarray
The default templates this instance holds.
Inherited Properties
Method Summary
-
__construct() public
Constructor. -
_compileTemplates() protected
Compile templates into a more efficient printf() compatible format. -
_formatAttribute() protected
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'
-
add() public
Registers a list of templates by name -
addClass() public
Adds a class and returns a unique list either in array or space separated -
format() public
Format a template string with $data -
formatAttributes() public
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: -
load() public
Load a config file containing templates. -
pop() public
Restore the most recently pushed set of templates. -
push() public
Push the current templates into the template stack. -
remove() public
Remove the named template.
Method Detail
__construct() public ¶
__construct( array $config [] )
Constructor.
Parameters
- array $config optional []
- A set of templates to add.
_compileTemplates() protected ¶
_compileTemplates( array $templates [] )
Compile templates into a more efficient printf() compatible format.
Parameters
- array $templates optional []
- The template names to compile. If empty all templates will be compiled.
_formatAttribute() protected ¶
_formatAttribute( string $key , string|array $value , boolean $escape true )
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 optional true
- Define if the value must be escaped
Returns
The composed attribute.
add() public ¶
add( array $templates )
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
addClass() public ¶
addClass( array|string $input , array|string $newClass , string $useIndex 'class' )
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 optional 'class'
- if you are inputting an array with an element other than default of 'class'.
Returns
format() public ¶
format( string $name , array $data )
Format a template string with $data
Parameters
- string $name
- The template name.
- array $data
- The data to insert.
Returns
Formatted string or null if template not found.
formatAttributes() public ¶
formatAttributes( array|null $options , array|null $exclude null )
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 optional null
- Array of options to be excluded, the options here will not be part of the return.
Returns
Composed attributes.
Methods used from Cake\Core\InstanceConfigTrait
_configDelete() protected ¶
_configDelete( string $key )
Deletes a single config key.
Parameters
- string $key
- Key to delete.
Throws
_configRead() protected ¶
_configRead( string|null $key )
Reads a config key.
Parameters
- string|null $key
- Key to read.
Returns
_configWrite() protected ¶
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Writes a config key.
Parameters
- string|array $key
- Key to write to.
- mixed $value
- Value to write.
- boolean|string $merge optional false
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Throws
config() public ¶
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
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']);
Deprecated
Parameters
- string|array|null $key optional null
- The key to get/set, or a complete array of configs.
- mixed|null $value optional null
- The value to set.
- boolean $merge optional true
- Whether to recursively merge or overwrite existing config, defaults to true.
Returns
Config value being read, or the object itself on write operations.
Throws
configShallow() public ¶
configShallow( string|array $key , mixed|null $value null )
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 optional null
- The value to set.
Returns
$this
getConfig() public ¶
getConfig( string|null $key null , mixed $default null )
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 optional null
- The key to get or null for the whole config.
- mixed $default optional null
- The return value when the key does not exist.
Returns
Config value being read.
setConfig() public ¶
setConfig( string|array $key , mixed|null $value null , boolean $merge true )
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 optional null
- The value to set.
- boolean $merge optional true
- Whether to recursively merge or overwrite existing config, defaults to true.
Returns
$this
Throws
Properties detail
$_compactAttributes ¶
List of attributes that can be made compact.
[ 'allowfullscreen' => true, 'async' => true, 'autofocus' => true, 'autoplay' => true, 'checked' => true, 'compact' => true, 'controls' => true, 'declare' => true, 'default' => true, 'defaultchecked' => true, 'defaultmuted' => true, 'defaultselected' => true, 'defer' => true, 'disabled' => true, 'enabled' => true, 'formnovalidate' => true, 'hidden' => true, 'indeterminate' => true, 'inert' => true, 'ismap' => true, 'itemscope' => true, 'loop' => true, 'multiple' => true, 'muted' => true, 'nohref' => true, 'noresize' => true, 'noshade' => true, 'novalidate' => true, 'nowrap' => true, 'open' => true, 'pauseonexit' => true, 'readonly' => true, 'required' => true, 'reversed' => true, 'scoped' => true, 'seamless' => true, 'selected' => true, 'sortable' => true, 'truespeed' => true, 'typemustmatch' => true, 'visible' => true, ]