Latte\Macros\BlockMacros::macroIfset PHP Method

macroIfset() public method

{ifset block} {elseifset block}
public macroIfset ( MacroNode $node, PhpWriter $writer )
$node Latte\MacroNode
$writer Latte\PhpWriter
    public function macroIfset(MacroNode $node, PhpWriter $writer)
    {
        if ($node->modifiers) {
            throw new CompileException('Modifiers are not allowed in ' . $node->getNotation());
        }
        if (!preg_match('~#|[\\w-]+\\z~A', $node->args)) {
            return FALSE;
        }
        $list = [];
        while (($name = $node->tokenizer->fetchWord()) !== FALSE) {
            $list[] = preg_match('~#|[\\w-]+\\z~A', $name) ? '$this->blockQueue["' . ltrim($name, '#') . '"]' : $writer->formatArgs(new Latte\MacroTokens($name));
        }
        return ($node->name === 'elseifset' ? '} else' : '') . 'if (isset(' . implode(', ', $list) . ')) {';
    }