Submit
Path:
~
/
/
proc
/
self
/
root
/
proc
/
self
/
root
/
opt
/
cpguard
/
app
/
vendor
/
twig
/
twig
/
src
/
Node
/
Expression
/
File Content:
BlockReferenceExpression.php
<?php /* * This file is part of Twig. * * (c) Fabien Potencier * (c) Armin Ronacher * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Twig\Node\Expression; use Twig\Compiler; use Twig\Node\Node; /** * Represents a block call node. * * @author Fabien Potencier <fabien@symfony.com> */ class BlockReferenceExpression extends AbstractExpression implements SupportDefinedTestInterface { use SupportDefinedTestDeprecationTrait; use SupportDefinedTestTrait; /** * @param AbstractExpression $name */ public function __construct(Node $name, ?Node $template, int $lineno) { if (!$name instanceof AbstractExpression) { trigger_deprecation('twig/twig', '3.15', 'Not passing a "%s" instance to the "node" argument of "%s" is deprecated ("%s" given).', AbstractExpression::class, static::class, $name::class); } $nodes = ['name' => $name]; if (null !== $template) { $nodes['template'] = $template; } parent::__construct($nodes, ['output' => false], $lineno); } public function compile(Compiler $compiler): void { if ($this->definedTest) { $this->compileTemplateCall($compiler, 'hasBlock'); } else { if ($this->getAttribute('output')) { $compiler->addDebugInfo($this); $compiler->write('yield from '); $this ->compileTemplateCall($compiler, 'yieldBlock') ->raw(";\n"); } else { $this->compileTemplateCall($compiler, 'renderBlock'); } } } private function compileTemplateCall(Compiler $compiler, string $method): Compiler { if (!$this->hasNode('template')) { $compiler->write('$this'); } else { $compiler ->write('$this->load(') ->subcompile($this->getNode('template')) ->raw(', ') ->repr($this->getTemplateLine()) ->raw(')') ; } $compiler->raw(\sprintf('->unwrap()->%s', $method)); return $this->compileBlockArguments($compiler); } private function compileBlockArguments(Compiler $compiler): Compiler { $compiler ->raw('(') ->subcompile($this->getNode('name')) ->raw(', $context'); if (!$this->hasNode('template')) { $compiler->raw(', $blocks'); } return $compiler->raw(')'); } }
Submit
FILE
FOLDER
Name
Size
Permission
Action
Binary
---
0755
Filter
---
0755
FunctionNode
---
0755
Ternary
---
0755
Test
---
0755
Unary
---
0755
Variable
---
0755
AbstractExpression.php
938 bytes
0644
ArrayExpression.php
3324 bytes
0644
ArrowFunctionExpression.php
1895 bytes
0644
AssignNameExpression.php
1278 bytes
0644
BlockReferenceExpression.php
2637 bytes
0644
CallExpression.php
15604 bytes
0644
ConditionalExpression.php
1639 bytes
0644
ConstantExpression.php
732 bytes
0644
FilterExpression.php
3235 bytes
0644
FunctionExpression.php
3021 bytes
0644
GetAttrExpression.php
4532 bytes
0644
InlinePrint.php
837 bytes
0644
ListExpression.php
876 bytes
0644
MacroReferenceExpression.php
1668 bytes
0644
MethodCallExpression.php
1811 bytes
0644
NameExpression.php
3782 bytes
0644
NullCoalesceExpression.php
3051 bytes
0644
OperatorEscapeInterface.php
482 bytes
0644
ParentExpression.php
1139 bytes
0644
ReturnArrayInterface.php
307 bytes
0644
ReturnBoolInterface.php
306 bytes
0644
ReturnNumberInterface.php
308 bytes
0644
ReturnPrimitiveTypeInterface.php
278 bytes
0644
ReturnStringInterface.php
308 bytes
0644
SupportDefinedTestDeprecationTrait.php
1133 bytes
0644
SupportDefinedTestInterface.php
506 bytes
0644
SupportDefinedTestTrait.php
499 bytes
0644
TempNameExpression.php
1496 bytes
0644
TestExpression.php
2647 bytes
0644
VariadicExpression.php
442 bytes
0644
N4ST4R_ID | Naxtarrr