class TwigFunction
Represents a template function.
@author Fabien Potencier <fabien@symfony.com>
Hierarchy
- class \Twig\AbstractTwigCallable implements \Twig\TwigCallableInterface
- class \Twig\TwigFunction extends \Twig\AbstractTwigCallable
Expanded class hierarchy of TwigFunction
See also
https://twig.symfony.com/doc/templates.html#functions
15 files declare their use of TwigFunction
- CallExpression.php in vendor/
twig/ twig/ src/ Node/ Expression/ CallExpression.php - ComponentNodeVisitor.php in core/
lib/ Drupal/ Core/ Template/ ComponentNodeVisitor.php - ComponentsTwigExtension.php in core/
lib/ Drupal/ Core/ Template/ ComponentsTwigExtension.php - CoreExtension.php in vendor/
twig/ twig/ src/ Extension/ CoreExtension.php - DebugExtension.php in vendor/
twig/ twig/ src/ Extension/ DebugExtension.php
File
-
vendor/
twig/ twig/ src/ TwigFunction.php, line 24
Namespace
TwigView source
final class TwigFunction extends AbstractTwigCallable {
/**
* @param callable|array{class-string, string}|null $callable A callable implementing the function. If null, you need to overwrite the "node_class" option to customize compilation.
*/
public function __construct(string $name, $callable = null, array $options = []) {
parent::__construct($name, $callable, $options);
$this->options = array_merge([
'is_safe' => null,
'is_safe_callback' => null,
'node_class' => FunctionExpression::class,
'parser_callable' => null,
], $this->options);
}
public function getType() : string {
return 'function';
}
public function getParserCallable() : ?callable {
return $this->options['parser_callable'];
}
public function getSafe(Node $functionArgs) : ?array {
if (null !== $this->options['is_safe']) {
return $this->options['is_safe'];
}
if (null !== $this->options['is_safe_callback']) {
return $this->options['is_safe_callback']($functionArgs);
}
return [];
}
}