Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
repr example
$this
->
setAttribute
(
'name',
$name
)
;
$this
->
setAttribute
(
'index',
$index
)
;
}
protected
function
addGetTemplate
(
Compiler
$compiler
)
: void
{
$compiler
->
write
(
'$this->loadTemplate('
)
->
string
(
$this
->
getAttribute
(
'name'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateName
(
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateLine
(
)
)
->
raw
(
', '
)
->
string
(
$this
->
getAttribute
(
'index'
)
)
->
raw
(
')'
)
;
}
}
$this
->
raw
(
'null'
)
;
}
elseif
(
\
is_bool
(
$value
)
)
{
$this
->
raw
(
$value
? 'true' : 'false'
)
;
}
elseif
(
\
is_array
(
$value
)
)
{
$this
->
raw
(
'array('
)
;
$first
= true;
foreach
(
$value
as
$key
=>
$v
)
{
if
(
!
$first
)
{
$this
->
raw
(
', '
)
;
}
$first
= false;
$this
->
repr
(
$key
)
;
$this
->
raw
(
' => '
)
;
$this
->
repr
(
$v
)
;
}
$this
->
raw
(
')'
)
;
}
else
{
$this
->
string
(
$value
)
;
}
return
$this
;
}
$this
->
raw
(
'null'
)
;
}
elseif
(
\
is_bool
(
$value
)
)
{
$this
->
raw
(
$value
? 'true' : 'false'
)
;
}
elseif
(
\
is_array
(
$value
)
)
{
$this
->
raw
(
'['
)
;
$first
= true;
foreach
(
$value
as
$key
=>
$value
)
{
if
(
!
$first
)
{
$this
->
raw
(
', '
)
;
}
$first
= false;
$this
->
repr
(
$key
)
;
$this
->
raw
(
' => '
)
;
$this
->
repr
(
$value
)
;
}
$this
->
raw
(
']'
)
;
}
else
{
$this
->
string
(
$value
)
;
}
return
$this
;
}
}
->
raw
(
', '
)
->
subcompile
(
$this
->
getNode
(
'attribute'
)
)
;
if
(
$this
->
hasNode
(
'arguments'
)
)
{
$compiler
->
raw
(
', '
)
->
subcompile
(
$this
->
getNode
(
'arguments'
)
)
;
}
else
{
$compiler
->
raw
(
', []'
)
;
}
$compiler
->
raw
(
', '
)
->
repr
(
$this
->
getAttribute
(
'type'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getAttribute
(
'is_defined_test'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getAttribute
(
'ignore_strict_check'
)
)
->
raw
(
', '
)
->
repr
(
$env
->
hasExtension
(
SandboxExtension::
class
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getNode
(
'node'
)
->
getTemplateLine
(
)
)
->
raw
(
')'
)
;
}
}
->
raw
(
', '
)
->
subcompile
(
$this
->
getNode
(
'vars'
)
)
->
raw
(
')'
)
;
}
else
{
$compiler
->
subcompile
(
$defaults
)
;
}
$compiler
->
raw
(
', '
)
;
if
(
!
$this
->
hasNode
(
'domain'
)
)
{
$compiler
->
repr
(
'messages'
)
;
}
else
{
$compiler
->
subcompile
(
$this
->
getNode
(
'domain'
)
)
;
}
if
(
$this
->
hasNode
(
'locale'
)
)
{
$compiler
->
raw
(
', '
)
->
subcompile
(
$this
->
getNode
(
'locale'
)
)
;
}
elseif
(
$this
->
hasNode
(
'count'
)
)
{
$compiler
->
raw
(
', null'
)
;
}
->
addDebugInfo
(
$parent
)
->
write
(
'return '
)
;
if
(
$parent
instanceof ConstantExpression
)
{
$compiler
->
subcompile
(
$parent
)
;
}
else
{
$compiler
->
raw
(
'$this->loadTemplate('
)
->
subcompile
(
$parent
)
->
raw
(
', '
)
->
repr
(
$this
->
getSourceContext
(
)
->
getName
(
)
)
->
raw
(
', '
)
->
repr
(
$parent
->
getTemplateLine
(
)
)
->
raw
(
')'
)
;
}
$compiler
->
raw
(
";\n"
)
->
outdent
(
)
->
write
(
"}\n\n"
)
;
}
class
EnterProfileNode
extends
Node
{
public
function
__construct
(
string
$extensionName
, string
$type
, string
$name
, string
$varName
)
{
parent::
__construct
(
[
]
,
[
'extension_name' =>
$extensionName
, 'name' =>
$name
, 'type' =>
$type
, 'var_name' =>
$varName
]
)
;
}
public
function
compile
(
Compiler
$compiler
)
: void
{
$compiler
->
write
(
sprintf
(
'$%s = $this->extensions[',
$this
->
getAttribute
(
'var_name'
)
)
)
->
repr
(
$this
->
getAttribute
(
'extension_name'
)
)
->
raw
(
"];\n"
)
->
write
(
sprintf
(
'$%s->enter($%s = new \Twig\Profiler\Profile($this->getTemplateName(), ',
$this
->
getAttribute
(
'var_name'
)
,
$this
->
getAttribute
(
'var_name'
)
.'_prof'
)
)
->
repr
(
$this
->
getAttribute
(
'type'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getAttribute
(
'name'
)
)
->
raw
(
"));\n\n"
)
;
}
}
protected
function
addGetTemplate
(
Compiler
$compiler
)
: void
{
$compiler
->
write
(
"((function () use (\$context, \$blocks) {\n"
)
->
indent
(
)
->
write
(
'$finder = $this->env->getExtension(\'' . NodeExtension::
class
D '\')->getFinder();'
)
->
raw
(
"\n\n"
)
->
write
(
'$includeTemplate = $finder->find('
)
->
subcompile
(
$this
->
getNode
(
'expr'
)
)
->
raw
(
");\n\n"
)
->
write
(
'return $this->loadTemplate('
)
->
raw
(
'$includeTemplate ?? null, '
)
->
repr
(
$this
->
getTemplateName
(
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateLine
(
)
)
->
raw
(
");\n"
)
->
outdent
(
)
->
write
(
'})())'
)
;
}
}
if
(
$node
instanceof NameExpression
)
{
$node
->
setAttribute
(
'always_defined', true
)
;
}
}
public
function
compile
(
Compiler
$compiler
)
: void
{
if
(
$this
->
getAttribute
(
'is_defined_test'
)
)
{
$compiler
->
raw
(
'method_exists($macros['
)
->
repr
(
$this
->
getNode
(
'node'
)
->
getAttribute
(
'name'
)
)
->
raw
(
'], '
)
->
repr
(
$this
->
getAttribute
(
'method'
)
)
->
raw
(
')'
)
;
return
;
}
$compiler
->
raw
(
'twig_call_macro($macros['
)
->
repr
(
$this
->
getNode
(
'node'
)
->
getAttribute
(
'name'
)
)
private
function
compileTemplateCall
(
Compiler
$compiler
, string
$method
)
: Compiler
{
if
(
!
$this
->
hasNode
(
'template'
)
)
{
$compiler
->
write
(
'$this'
)
;
}
else
{
$compiler
->
write
(
'$this->loadTemplate('
)
->
subcompile
(
$this
->
getNode
(
'template'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateName
(
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateLine
(
)
)
->
raw
(
')'
)
;
}
$compiler
->
raw
(
sprintf
(
'->%s',
$method
)
)
;
return
$this
->
compileBlockArguments
(
$compiler
)
;
}
public
function
__construct
(
AbstractExpression
$expr
, AbstractExpression
$var
, int
$lineno
, string
$tag
= null, bool
$global
= true
)
{
parent::
__construct
(
[
'expr' =>
$expr
, 'var' =>
$var
]
,
[
'global' =>
$global
]
,
$lineno
,
$tag
)
;
}
public
function
compile
(
Compiler
$compiler
)
: void
{
$compiler
->
addDebugInfo
(
$this
)
->
write
(
'$macros['
)
->
repr
(
$this
->
getNode
(
'var'
)
->
getAttribute
(
'name'
)
)
->
raw
(
'] = '
)
;
if
(
$this
->
getAttribute
(
'global'
)
)
{
$compiler
->
raw
(
'$this->macros['
)
->
repr
(
$this
->
getNode
(
'var'
)
->
getAttribute
(
'name'
)
)
->
raw
(
'] = '
)
;
}
use
Twig\Compiler;
class
ConstantExpression
extends
AbstractExpression
{
public
function
__construct
(
$value
, int
$lineno
)
{
parent::
__construct
(
[
]
,
[
'value' =>
$value
]
,
$lineno
)
;
}
public
function
compile
(
Compiler
$compiler
)
: void
{
$compiler
->
repr
(
$this
->
getAttribute
(
'value'
)
)
;
}
}
parent::
__construct
(
[
'expr' =>
$expr
]
,
[
]
,
$expr
->
getTemplateLine
(
)
,
$expr
->
getNodeTag
(
)
)
;
}
public
function
compile
(
Compiler
$compiler
)
: void
{
$expr
=
$this
->
getNode
(
'expr'
)
;
$compiler
->
raw
(
'$this->sandbox->ensureToStringAllowed('
)
->
subcompile
(
$expr
)
->
raw
(
', '
)
->
repr
(
$expr
->
getTemplateLine
(
)
)
->
raw
(
', $this->source)'
)
;
}
}
if
(
$this
->
hasNode
(
'variables'
)
)
{
$node
=
$this
->
getNode
(
'variables'
)
;
$varsName
=
$compiler
->
getVarName
(
)
;
$compiler
->
write
(
sprintf
(
'$%s = ',
$varsName
)
)
->
subcompile
(
$node
)
->
raw
(
";\n"
)
->
write
(
sprintf
(
"if (!twig_test_iterable(\$%s)) {\n",
$varsName
)
)
->
indent
(
)
->
write
(
"throw new RuntimeError('Variables passed to the \"with\" tag must be a hash.', "
)
->
repr
(
$node
->
getTemplateLine
(
)
)
->
raw
(
", \$this->getSourceContext());\n"
)
->
outdent
(
)
->
write
(
"}\n"
)
->
write
(
sprintf
(
"\$%s = twig_to_array(\$%s);\n",
$varsName
,
$varsName
)
)
;
if
(
$this
->
getAttribute
(
'only'
)
)
{
$compiler
->
write
(
"\$context = [];\n"
)
;
}
$compiler
->
write
(
sprintf
(
"\$context = \$this->env->mergeGlobals(array_merge(\$context, \$%s));\n",
$varsName
)
)
;
}
$this
->
addTemplateArguments
(
$compiler
)
;
$compiler
->
raw
(
");\n"
)
;
}
}
protected
function
addGetTemplate
(
Compiler
$compiler
)
{
$compiler
->
write
(
'$this->loadTemplate('
)
->
subcompile
(
$this
->
getNode
(
'expr'
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateName
(
)
)
->
raw
(
', '
)
->
repr
(
$this
->
getTemplateLine
(
)
)
->
raw
(
')'
)
;
}
protected
function
addTemplateArguments
(
Compiler
$compiler
)
{
if
(
!
$this
->
hasNode
(
'variables'
)
)
{
$compiler
->
raw
(
false ===
$this
->
getAttribute
(
'only'
)
? '$context' : '[]'
)
;
}
elseif
(
false ===
$this
->
getAttribute
(
'only'
)
)
{