Source of file Debug.php
Size: 1,823 Bytes - Last Modified: 2013-02-28T15:21:30+01:00
/home/theseer/Downloads/Symfony/vendor/twig/extensions/lib/Twig/Extensions/Node/Debug.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | <?php /* * This file is part of Twig. * * (c) 2010 Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Represents a debug node. * * @package twig * @subpackage Twig-extensions * @author Fabien Potencier <fabien.potencier@symfony-project.com> * @version SVN: $Id$ */ class Twig_Extensions_Node_Debug extends Twig_Node { public function __construct(Twig_Node_Expression $expr = null, $lineno, $tag = null) { parent::__construct(array('expr' => $expr), array(), $lineno, $tag); } /** * Compiles the node to PHP. * * @param Twig_Compiler A Twig_Compiler instance */ public function compile(Twig_Compiler $compiler) { $compiler->addDebugInfo($this); $compiler ->write("if (\$this->env->isDebug()) {\n") ->indent() ; if (null === $this->getNode('expr')) { // remove embedded templates (macros) from the context $compiler ->write("\$vars = array();\n") ->write("foreach (\$context as \$key => \$value) {\n") ->indent() ->write("if (!\$value instanceof Twig_Template) {\n") ->indent() ->write("\$vars[\$key] = \$value;\n") ->outdent() ->write("}\n") ->outdent() ->write("}\n") ->write("var_dump(\$vars);\n") ; } else { $compiler ->write("var_dump(") ->subcompile($this->getNode('expr')) ->raw(");\n") ; } $compiler ->outdent() ->write("}\n") ; } } |