mirror of
https://github.com/slawkens/myaac.git
synced 2025-10-14 09:44:55 +02:00
Update Twig to v2.15.4
This commit is contained in:
@@ -25,16 +25,15 @@ use Twig\Source;
|
||||
* display_end, constructor_start, constructor_end, and class_end.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @final since Twig 2.4.0
|
||||
*/
|
||||
class ModuleNode extends Node
|
||||
{
|
||||
public function __construct(\Twig_NodeInterface $body, AbstractExpression $parent = null, \Twig_NodeInterface $blocks, \Twig_NodeInterface $macros, \Twig_NodeInterface $traits, $embeddedTemplates, $name, $source = '')
|
||||
public function __construct(Node $body, ?AbstractExpression $parent, Node $blocks, Node $macros, Node $traits, $embeddedTemplates, Source $source)
|
||||
{
|
||||
if (!$name instanceof Source) {
|
||||
@trigger_error(sprintf('Passing a string as the $name argument of %s() is deprecated since version 1.27. Pass a \Twig\Source instance instead.', __METHOD__), E_USER_DEPRECATED);
|
||||
$source = new Source($source, $name);
|
||||
} else {
|
||||
$source = $name;
|
||||
if (__CLASS__ !== static::class) {
|
||||
@trigger_error('Overriding '.__CLASS__.' is deprecated since Twig 2.4.0 and the class will be final in 3.0.', \E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$nodes = [
|
||||
@@ -54,16 +53,11 @@ class ModuleNode extends Node
|
||||
|
||||
// embedded templates are set as attributes so that they are only visited once by the visitors
|
||||
parent::__construct($nodes, [
|
||||
// source to be remove in 2.0
|
||||
'source' => $source->getCode(),
|
||||
// filename to be remove in 2.0 (use getTemplateName() instead)
|
||||
'filename' => $source->getName(),
|
||||
'index' => null,
|
||||
'embedded_templates' => $embeddedTemplates,
|
||||
], 1);
|
||||
|
||||
// populate the template name of all node children
|
||||
$this->setTemplateName($source->getName());
|
||||
$this->setSourceContext($source);
|
||||
}
|
||||
|
||||
@@ -89,16 +83,7 @@ class ModuleNode extends Node
|
||||
|
||||
$this->compileClassHeader($compiler);
|
||||
|
||||
if (
|
||||
\count($this->getNode('blocks'))
|
||||
|| \count($this->getNode('traits'))
|
||||
|| !$this->hasNode('parent')
|
||||
|| $this->getNode('parent') instanceof ConstantExpression
|
||||
|| \count($this->getNode('constructor_start'))
|
||||
|| \count($this->getNode('constructor_end'))
|
||||
) {
|
||||
$this->compileConstructor($compiler);
|
||||
}
|
||||
$this->compileConstructor($compiler);
|
||||
|
||||
$this->compileGetParent($compiler);
|
||||
|
||||
@@ -114,8 +99,6 @@ class ModuleNode extends Node
|
||||
|
||||
$this->compileDebugInfo($compiler);
|
||||
|
||||
$this->compileGetSource($compiler);
|
||||
|
||||
$this->compileGetSourceContext($compiler);
|
||||
|
||||
$this->compileClassFooter($compiler);
|
||||
@@ -166,6 +149,7 @@ class ModuleNode extends Node
|
||||
->write("use Twig\Environment;\n")
|
||||
->write("use Twig\Error\LoaderError;\n")
|
||||
->write("use Twig\Error\RuntimeError;\n")
|
||||
->write("use Twig\Extension\SandboxExtension;\n")
|
||||
->write("use Twig\Markup;\n")
|
||||
->write("use Twig\Sandbox\SecurityError;\n")
|
||||
->write("use Twig\Sandbox\SecurityNotAllowedTagError;\n")
|
||||
@@ -179,9 +163,11 @@ class ModuleNode extends Node
|
||||
// if the template name contains */, add a blank to avoid a PHP parse error
|
||||
->write('/* '.str_replace('*/', '* /', $this->getSourceContext()->getName())." */\n")
|
||||
->write('class '.$compiler->getEnvironment()->getTemplateClass($this->getSourceContext()->getName(), $this->getAttribute('index')))
|
||||
->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass()))
|
||||
->raw(sprintf(" extends %s\n", $compiler->getEnvironment()->getBaseTemplateClass(false)))
|
||||
->write("{\n")
|
||||
->indent()
|
||||
->write("private \$source;\n")
|
||||
->write("private \$macros = [];\n\n")
|
||||
;
|
||||
}
|
||||
|
||||
@@ -192,6 +178,7 @@ class ModuleNode extends Node
|
||||
->indent()
|
||||
->subcompile($this->getNode('constructor_start'))
|
||||
->write("parent::__construct(\$env);\n\n")
|
||||
->write("\$this->source = \$this->getSourceContext();\n\n")
|
||||
;
|
||||
|
||||
// parent
|
||||
@@ -203,18 +190,24 @@ class ModuleNode extends Node
|
||||
if ($countTraits) {
|
||||
// traits
|
||||
foreach ($this->getNode('traits') as $i => $trait) {
|
||||
$this->compileLoadTemplate($compiler, $trait->getNode('template'), sprintf('$_trait_%s', $i));
|
||||
|
||||
$node = $trait->getNode('template');
|
||||
|
||||
$compiler
|
||||
->addDebugInfo($node)
|
||||
->write(sprintf('$_trait_%s = $this->loadTemplate(', $i))
|
||||
->subcompile($node)
|
||||
->raw(', ')
|
||||
->repr($node->getTemplateName())
|
||||
->raw(', ')
|
||||
->repr($node->getTemplateLine())
|
||||
->raw(");\n")
|
||||
->write(sprintf("if (!\$_trait_%s->isTraitable()) {\n", $i))
|
||||
->indent()
|
||||
->write("throw new RuntimeError('Template \"'.")
|
||||
->subcompile($trait->getNode('template'))
|
||||
->raw(".'\" cannot be used as a trait.', ")
|
||||
->repr($node->getTemplateLine())
|
||||
->raw(", \$this->getSourceContext());\n")
|
||||
->raw(", \$this->source);\n")
|
||||
->outdent()
|
||||
->write("}\n")
|
||||
->write(sprintf("\$_trait_%s_blocks = \$_trait_%s->getBlocks();\n\n", $i, $i))
|
||||
@@ -226,13 +219,13 @@ class ModuleNode extends Node
|
||||
->string($key)
|
||||
->raw("])) {\n")
|
||||
->indent()
|
||||
->write("throw new RuntimeError(sprintf('Block ")
|
||||
->write("throw new RuntimeError('Block ")
|
||||
->string($key)
|
||||
->raw(' is not defined in trait ')
|
||||
->subcompile($trait->getNode('template'))
|
||||
->raw(".'), ")
|
||||
->raw(".', ")
|
||||
->repr($node->getTemplateLine())
|
||||
->raw(", \$this->getSourceContext());\n")
|
||||
->raw(", \$this->source);\n")
|
||||
->outdent()
|
||||
->write("}\n\n")
|
||||
|
||||
@@ -318,6 +311,7 @@ class ModuleNode extends Node
|
||||
$compiler
|
||||
->write("protected function doDisplay(array \$context, array \$blocks = [])\n", "{\n")
|
||||
->indent()
|
||||
->write("\$macros = \$this->macros;\n")
|
||||
->subcompile($this->getNode('display_start'))
|
||||
->subcompile($this->getNode('body'))
|
||||
;
|
||||
@@ -440,20 +434,6 @@ class ModuleNode extends Node
|
||||
;
|
||||
}
|
||||
|
||||
protected function compileGetSource(Compiler $compiler)
|
||||
{
|
||||
$compiler
|
||||
->write("/** @deprecated since 1.27 (to be removed in 2.0). Use getSourceContext() instead */\n")
|
||||
->write("public function getSource()\n", "{\n")
|
||||
->indent()
|
||||
->write("@trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0. Use getSourceContext() instead.', E_USER_DEPRECATED);\n\n")
|
||||
->write('return $this->getSourceContext()->getCode();')
|
||||
->raw("\n")
|
||||
->outdent()
|
||||
->write("}\n\n")
|
||||
;
|
||||
}
|
||||
|
||||
protected function compileGetSourceContext(Compiler $compiler)
|
||||
{
|
||||
$compiler
|
||||
|
Reference in New Issue
Block a user