feature #2045 Adds Twig_NodeCaptureInterface for nodes that capture all output

This commit is contained in:
brandonkelly
2017-01-06 12:25:44 -08:00
committed by Fabien Potencier
parent 3cdbd325d4
commit bc6a91335d
3 changed files with 22 additions and 3 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class Twig_Node_Set extends Twig_Node
class Twig_Node_Set extends Twig_Node implements Twig_NodeCaptureInterface
{
public function __construct($capture, Twig_NodeInterface $names, Twig_NodeInterface $values, $lineno, $tag = null)
{
+19
View File
@@ -0,0 +1,19 @@
<?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 node that will capture any nested displayable nodes.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
interface Twig_NodeCaptureInterface
{
}
+2 -2
View File
@@ -386,8 +386,8 @@ class Twig_Parser implements Twig_ParserInterface
throw new Twig_Error_Syntax('A template that extends another one cannot include contents outside Twig blocks. Did you forget to put the contents inside a {% block %} tag?', $node->getTemplateLine(), $this->stream->getSourceContext());
}
// bypass "set" nodes as they "capture" the output
if ($node instanceof Twig_Node_Set) {
// bypass nodes that will "capture" the output
if ($node instanceof Twig_NodeCaptureInterface) {
return $node;
}