[TwigBundle] updated the bundle to work with the latest Twig version
This commit is contained in:
parent
d05cec8a39
commit
12328a1bcb
@ -17,71 +17,37 @@ namespace Symfony\Framework\TwigBundle\Node;
|
|||||||
* @subpackage Framework_TwigBundle
|
* @subpackage Framework_TwigBundle
|
||||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||||
*/
|
*/
|
||||||
class HelperNode extends \Twig_Node implements \Twig_NodeListInterface
|
class HelperNode extends \Twig_Node
|
||||||
{
|
{
|
||||||
protected $name;
|
public function __construct($name, $method, \Twig_Node $arguments = null, $echo, $lineno, $tag = null)
|
||||||
protected $method;
|
|
||||||
protected $arguments;
|
|
||||||
protected $echo;
|
|
||||||
|
|
||||||
public function __construct($name, $method, \Twig_NodeList $arguments, $echo, $lineno, $tag = null)
|
|
||||||
{
|
{
|
||||||
parent::__construct($lineno, $tag);
|
parent::__construct(array('arguments' => $arguments), array('name' => $name, 'method' => $method, 'echo' => $echo), $lineno, $tag);
|
||||||
$this->name = $name;
|
|
||||||
$this->method = $method;
|
|
||||||
$this->arguments = $arguments;
|
|
||||||
$this->echo = $echo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __toString()
|
|
||||||
{
|
|
||||||
return get_class($this).'('.$this->arguments.')';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getNodes()
|
|
||||||
{
|
|
||||||
return array($this->arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setNodes(array $nodes)
|
|
||||||
{
|
|
||||||
$this->arguments = $nodes[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function compile($compiler)
|
public function compile($compiler)
|
||||||
{
|
{
|
||||||
$compiler->addDebugInfo($this);
|
$compiler
|
||||||
|
->addDebugInfo($this)
|
||||||
|
->write('')
|
||||||
|
;
|
||||||
|
|
||||||
if ($this->echo) {
|
if ($this['echo']) {
|
||||||
$compiler->raw('echo ');
|
$compiler->raw('echo ');
|
||||||
}
|
}
|
||||||
|
|
||||||
$compiler->write('$context[\'_view\']->'.$this->name.'->'.$this->method.'(');
|
$compiler->raw('$context[\'_view\']->'.$this['name'].'->'.$this['method'].'(');
|
||||||
|
|
||||||
$count = count($this->arguments->getNodes());
|
if (null !== $this->arguments) {
|
||||||
foreach ($this->arguments->getNodes() as $i => $node) {
|
$count = count($this->arguments);
|
||||||
|
foreach ($this->arguments as $i => $node) {
|
||||||
$compiler->subcompile($node);
|
$compiler->subcompile($node);
|
||||||
|
|
||||||
if ($i !== $count - 1) {
|
if ($i !== $count - 1) {
|
||||||
$compiler->raw(', ');
|
$compiler->raw(', ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$compiler->raw(");\n");
|
$compiler->raw(");\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getName()
|
|
||||||
{
|
|
||||||
return $this->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getMethod()
|
|
||||||
{
|
|
||||||
return $this->method;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getArguments()
|
|
||||||
{
|
|
||||||
return $this->arguments;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ class JavascriptTokenParser extends \Twig_TokenParser
|
|||||||
|
|
||||||
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
|
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('javascripts', 'add', new \Twig_NodeList($nodes), false, $token->getLine(), $this->getTag());
|
return new HelperNode('javascripts', 'add', new \Twig_Node($nodes), false, $token->getLine(), $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
@ -28,7 +28,7 @@ class JavascriptsTokenParser extends \Twig_TokenParser
|
|||||||
{
|
{
|
||||||
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('javascripts', 'render', new \Twig_NodeList(array()), true, $token->getLine(), $this->getTag());
|
return new HelperNode('javascripts', 'render', null, true, $token->getLine(), $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
@ -38,7 +38,7 @@ class RenderTokenParser extends \Twig_TokenParser
|
|||||||
|
|
||||||
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('actions', 'render', new \Twig_NodeList($nodes), true, $lineno, $this->getTag());
|
return new HelperNode('actions', 'render', new \Twig_Node($nodes), true, $lineno, $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
@ -38,7 +38,7 @@ class RouteTokenParser extends \Twig_TokenParser
|
|||||||
|
|
||||||
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('router', 'generate', new \Twig_NodeList($nodes), true, $lineno, $this->getTag());
|
return new HelperNode('router', 'generate', new \Twig_Node($nodes), true, $lineno, $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
@ -38,7 +38,7 @@ class StylesheetTokenParser extends \Twig_TokenParser
|
|||||||
|
|
||||||
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
|
$stream->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('stylesheets', 'add', new \Twig_NodeList($nodes), false, $token->getLine(), $this->getTag());
|
return new HelperNode('stylesheets', 'add', new \Twig_Node($nodes), false, $token->getLine(), $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
@ -28,7 +28,7 @@ class StylesheetsTokenParser extends \Twig_TokenParser
|
|||||||
{
|
{
|
||||||
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
$this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE);
|
||||||
|
|
||||||
return new HelperNode('stylesheets', 'render', new \Twig_NodeList(array()), true, $token->getLine(), $this->getTag());
|
return new HelperNode('stylesheets', 'render', null, true, $token->getLine(), $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag()
|
||||||
|
Reference in New Issue
Block a user