FilterExpression example



        return $this->defaultStrategy ? $this->defaultStrategy : false;
    }

    private function getEscaperFilter(string $type, Node $node): FilterExpression
    {
        $line = $node->getTemplateLine();
        $name = new ConstantExpression('escape', $line);
        $args = new Node([new ConstantExpression($type$line)new ConstantExpression(null, $line)new ConstantExpression(true, $line)]);

        return new FilterExpression($node$name$args$line);
    }

    public function getPriority(): int
    {
        return 0;
    }
}
/** * Returns the value or the default value when it is undefined or empty. * * {{ var.foo|default('foo item on var is not defined') }} * * @author Fabien Potencier <fabien@symfony.com> */
class DefaultFilter extends FilterExpression
{
    public function __construct(Node $node, ConstantExpression $filterName, Node $arguments, int $lineno, string $tag = null)
    {
        $default = new FilterExpression($nodenew ConstantExpression('default', $node->getTemplateLine())$arguments$node->getTemplateLine());

        if ('default' === $filterName->getAttribute('value') && ($node instanceof NameExpression || $node instanceof GetAttrExpression)) {
            $test = new DefinedTest(clone $node, 'defined', new Node()$node->getTemplateLine());
            $false = \count($arguments) ? $arguments->getNode(0) : new ConstantExpression('', $node->getTemplateLine());

            $node = new ConditionalExpression($test$default$false$node->getTemplateLine());
        } else {
            $node = $default;
        }

        parent::__construct($node$filterName$arguments$lineno$tag);
    }
Home | Imprint | This part of the site doesn't use cookies.