PHP Class FluidTYPO3\Vhs\ViewHelpers\Variable\SetViewHelper

Sets a single variable in the TemplateVariableContainer scope. The variable then becomes accessible as {var}. Combines well with v:variable.get to set shorter variable names referencing dynamic variables, such as: {myObject.name} Note that {arrayVariable.{offset}.name} is not possible due to the way Fluid parses nodes; the above piece of code would try reading arrayVariable.{offset}.name as a variable actually called "arrayVariable.{offset}.name" rather than the correct arrayVariable[offset][name]. In many ways this ViewHelper works like f:alias with one exception: in f:alias the variable only becomes accessible in the tag content, whereas v:variable.set inserts the variable in the template and leaves it there (it "leaks" the variable). If $name contains a dot, VHS will attempt to load the object stored under the named used as the first segment part and set the value at the remaining path. E.g. {value -> v:variable.set(name: 'object.property.subProperty')} would attempt to load {object} first, then set property.subProperty on that object/array using ObjectAccess::setPropertyPath(). If {object} is not an object or an array, the variable will not be set. Please note: Extbase does not currently support setting variables deeper than two levels, meaning a name of fx foo.bar.baz will be ignored. To set values deeper than two levels you must first extract the second-level object then set the value on that object. Using as {value -> v:variable.set(name: 'myVar')} makes {myVar} contain {value}.
Inheritance: extends TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper
Datei anzeigen Open project: fluidtypo3/vhs

Public Methods

Method Description
render ( string $name, mixed $value = null ) : void Set (override) the variable in $name.

Method Details

render() public method

Set (override) the variable in $name.
public render ( string $name, mixed $value = null ) : void
$name string
$value mixed
return void