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
Namespace: Cake\View
Location: View/StringTemplate.php

Properties summary

  • array
    List of attributes that can be made compact.
  • $_compiled protected
    array
    Contains the list of compiled templates
  • $_configStack protected
    array
    A stack of template sets that have been stashed temporarily.
  • $_defaultConfig protected
    array
    The default templates this instance holds.

Inherited Properties

Method Summary

  • __construct() public
    Constructor.
  • 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
  • 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()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

string
The 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|string

format()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|null
Formatted 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

string
Composed 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

pop()source public

pop( )

Restore the most recently pushed set of templates.

push()source public

push( )

Push the current templates into the template stack.

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 deprecated

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

mixed
Config 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

mixed
Config 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,
]

$_compiledsource

protected array

Contains the list of compiled templates

[]

$_configStacksource

protected array

A stack of template sets that have been stashed temporarily.

[]

$_defaultConfigsource

protected array

The default templates this instance holds.

[]

© 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/3.7/class-Cake.View.StringTemplate.html