Assetic\Extension\Twig\TwigFormulaLoader::loadNode PHP Method

loadNode() private method

Loads assets from the supplied node.
private loadNode ( Twig_Node $node ) : array
$node Twig_Node
return array An array of asset formulae indexed by name
    private function loadNode(\Twig_Node $node)
    {
        $formulae = array();
        if ($node instanceof AsseticNode) {
            $formulae[$node->getAttribute('name')] = array($node->getAttribute('inputs'), $node->getAttribute('filters'), array('output' => $node->getAttribute('asset')->getTargetPath(), 'name' => $node->getAttribute('name'), 'debug' => $node->getAttribute('debug'), 'combine' => $node->getAttribute('combine'), 'vars' => $node->getAttribute('vars')));
        } elseif ($node instanceof AsseticFilterNode) {
            $name = $node->getAttribute('name');
            $arguments = array();
            foreach ($node->getNode('arguments') as $argument) {
                $arguments[] = eval('return ' . $this->twig->compile($argument) . ';');
            }
            $invoker = $this->twig->getExtension('Assetic\\Extension\\Twig\\AsseticExtension')->getFilterInvoker($name);
            $inputs = isset($arguments[0]) ? (array) $arguments[0] : array();
            $filters = $invoker->getFilters();
            $options = array_replace($invoker->getOptions(), isset($arguments[1]) ? $arguments[1] : array());
            if (!isset($options['name'])) {
                $options['name'] = $invoker->getFactory()->generateAssetName($inputs, $filters, $options);
            }
            $formulae[$options['name']] = array($inputs, $filters, $options);
        }
        foreach ($node as $child) {
            if ($child instanceof \Twig_Node) {
                $formulae += $this->loadNode($child);
            }
        }
        if ($node->hasAttribute('embedded_templates')) {
            foreach ($node->getAttribute('embedded_templates') as $child) {
                $formulae += $this->loadNode($child);
            }
        }
        return $formulae;
    }