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
protectedList of attributes that can be made compact.array
-
$_compiled
protectedContains the list of compiled templatesarray
-
$_configStack
protectedA stack of template sets that have been stashed temporarily.array
-
$_defaultConfig
protectedThe default templates this instance holds.array
Inherited Properties
Method Summary
- __construct() publicConstructor.
- _compileTemplates() protectedCompile 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() publicRegisters a list of templates by name
- addClass() publicAdds a class and returns a unique list either in array or space separated
- format() publicFormat 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() publicLoad a config file containing templates.
- pop() publicRestore the most recently pushed set of templates.
- push() publicPush the current templates into the template stack.
- remove() publicRemove the named template.
Method Detail
__construct()source public
__construct( array $config [] )
Constructor.
Parameters
- array
$config
optional [] - A set of templates to add.
_compileTemplates()source 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()source 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
stringThe composed attribute.
add()source 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()source 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
array|stringformat()source 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
string|nullFormatted string or null if template not found.
formatAttributes()source 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
stringComposed attributes.
load()source public
load( string $file )
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()source public
remove( string $name )
Remove the named template.
Parameters
- string
$name
- The template to remove.
Methods used from Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Deletes a single config key.
Parameters
- string
$key
- Key to delete.
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config
_configRead()source protected
_configRead( string|null $key )
Reads a config key.
Parameters
- string|null
$key
- Key to read.
Returns
mixed_configWrite()source 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
Cake\Core\Exception\Exception
if attempting to clobber existing config
config()source 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
3.4.0 use setConfig()/getConfig() instead.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
mixedConfig value being read, or the object itself on write operations.
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.
configShallow()source 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()source 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
mixedConfig value being read.
setConfig()source 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
Cake\Core\Exception\Exception
When trying to set a key that is invalid.
Properties detail
$_compactAttributessource
protected array
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, ]
© 2005–2017 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/3.4/class-Cake.View.StringTemplate.html