Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getTest example
$nodes
=
[
'node' =>
$node
]
;
if
(
null !==
$arguments
)
{
$nodes
[
'arguments'
]
=
$arguments
;
}
parent::
__construct
(
$nodes
,
[
'name' =>
$name
]
,
$lineno
)
;
}
public
function
compile
(
Compiler
$compiler
)
: void
{
$name
=
$this
->
getAttribute
(
'name'
)
;
$test
=
$compiler
->
getEnvironment
(
)
->
getTest
(
$name
)
;
$this
->
setAttribute
(
'name',
$name
)
;
$this
->
setAttribute
(
'type', 'test'
)
;
$this
->
setAttribute
(
'arguments',
$test
->
getArguments
(
)
)
;
$this
->
setAttribute
(
'callable',
$test
->
getCallable
(
)
)
;
$this
->
setAttribute
(
'is_variadic',
$test
->
isVariadic
(
)
)
;
$this
->
compileCallable
(
$compiler
)
;
}
}
return
new
Node
(
$targets
)
;
}
private
function
parseNotTestExpression
(
Node
$node
)
: NotUnary
{
return
new
NotUnary
(
$this
->
parseTestExpression
(
$node
)
,
$this
->parser->
getCurrentToken
(
)
->
getLine
(
)
)
;
}
private
function
parseTestExpression
(
Node
$node
)
: TestExpression
{
$stream
=
$this
->parser->
getStream
(
)
;
list
(
$name
,
$test
)
=
$this
->
getTest
(
$node
->
getTemplateLine
(
)
)
;
$class
=
$this
->
getTestNodeClass
(
$test
)
;
$arguments
= null;
if
(
$stream
->
test
(
/* Token::PUNCTUATION_TYPE */ 9, '('
)
)
{
$arguments
=
$this
->
parseArguments
(
true
)
;
}
elseif
(
$test
->
hasOneMandatoryArgument
(
)
)
{
$arguments
=
new
Node
(
[
0 =>
$this
->
parsePrimaryExpression
(
)
]
)
;
}
if
(
'defined' ===
$name
&&
$node
instanceof NameExpression && null !==
$alias
=
$this
->parser->
getImportedSymbol
(
'function',
$node
->
getAttribute
(
'name'
)
)
)
{
$node
=
new
MethodCallExpression
(
$alias
[
'node'
]
,
$alias
[
'name'
]
,
new
ArrayExpression
(
[
]
,
$node
->
getTemplateLine
(
)
)
,
$node
->
getTemplateLine
(
)
)
;
if
(
$id
=
$node
->
getId
(
)
)
{
$code
.= " " .
$this
->
renderNode
(
$id
)
;
}
if
(
$superClass
=
$node
->
getSuperClass
(
)
)
{
$code
.= " extends " .
$this
->
renderNode
(
$superClass
)
;
}
$code
.=
$this
->
renderStatementBlock
(
$node
,
$node
->
getBody
(
)
, true
)
;
break
;
case
"ConditionalExpression":
$code
.=
$this
->
renderNode
(
$node
->
getTest
(
)
)
.
$this
->renderOpts->sao .
"?" .
$this
->renderOpts->sao .
$this
->
renderNode
(
$node
->
getConsequent
(
)
)
.
$this
->renderOpts->sao .
":" .
$this
->renderOpts->sao .
$this
->
renderNode
(
$node
->
getAlternate
(
)
)
;
break
;
case
"DebuggerStatement":
$code
.= "debugger";
public
function
getTests
(
)
: array
{
return
$this
->extensionSet->
getTests
(
)
;
}
/** * @internal */
public
function
getTest
(
string
$name
)
: ?TwigTest
{
return
$this
->extensionSet->
getTest
(
$name
)
;
}
public
function
addFunction
(
TwigFunction
$function
)
{
$this
->extensionSet->
addFunction
(
$function
)
;
}
/** * @internal */
public
function
getFunction
(
string
$name
)
: ?TwigFunction
{