\Twig_NodeVisitor_Optimizer

Twig_NodeVisitor_Optimizer tries to optimizes the AST.

This visitor is always the last registered one.

You can configure which optimizations you want to activate via the optimizer mode.

Summary

Methods
Properties
Constants
enterNode()
leaveNode()
__construct()
getPriority()
No public properties found
OPTIMIZE_ALL
OPTIMIZE_NONE
OPTIMIZE_FOR
OPTIMIZE_RAW_FILTER
OPTIMIZE_VAR_ACCESS
doEnterNode()
doLeaveNode()
No protected properties found
N/A
optimizePrintNode()
optimizeRawFilter()
enterOptimizeFor()
leaveOptimizeFor()
addLoopToCurrent()
addLoopToAll()
$loops
$loopsTargets
$optimizers
N/A

Constants

OPTIMIZE_ALL

OPTIMIZE_ALL = -1

OPTIMIZE_NONE

OPTIMIZE_NONE = 0

OPTIMIZE_FOR

OPTIMIZE_FOR = 2

OPTIMIZE_RAW_FILTER

OPTIMIZE_RAW_FILTER = 4

OPTIMIZE_VAR_ACCESS

OPTIMIZE_VAR_ACCESS = 8

Properties

$loops

$loops : 

Type

$loopsTargets

$loopsTargets : 

Type

$optimizers

$optimizers : 

Type

Methods

enterNode()

enterNode(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node

Called before child nodes are visited.

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node

The modified node

leaveNode()

leaveNode(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node|false

Called after child nodes are visited.

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node|false —

The modified node or false if the node must be removed

__construct()

__construct(integer  $optimizers = -1) 

Parameters

integer $optimizers

The optimizer mode

getPriority()

getPriority() 

doEnterNode()

doEnterNode(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node

Called before child nodes are visited.

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node

The modified node

doLeaveNode()

doLeaveNode(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node|false

Called after child nodes are visited.

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node|false —

The modified node or false if the node must be removed

optimizePrintNode()

optimizePrintNode(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node

Optimizes print nodes.

It replaces:

  • "echo $this->render(Parent)Block()" with "$this->display(Parent)Block()"

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node

optimizeRawFilter()

optimizeRawFilter(\Twig_Node  $node, \Twig_Environment  $env) : \Twig_Node

Removes "raw" filters.

Parameters

\Twig_Node $node
\Twig_Environment $env

Returns

\Twig_Node

enterOptimizeFor()

enterOptimizeFor(\Twig_Node  $node, \Twig_Environment  $env) 

Optimizes "for" tag by removing the "loop" variable creation whenever possible.

Parameters

\Twig_Node $node
\Twig_Environment $env

leaveOptimizeFor()

leaveOptimizeFor(\Twig_Node  $node, \Twig_Environment  $env) 

Optimizes "for" tag by removing the "loop" variable creation whenever possible.

Parameters

\Twig_Node $node
\Twig_Environment $env

addLoopToCurrent()

addLoopToCurrent() 

addLoopToAll()

addLoopToAll()