mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-15 11:56:50 +00:00
added priority to node visitors
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
* 0.9.10
|
||||
|
||||
* added priority to node visitors
|
||||
|
||||
* 0.9.9 (2010-11-28)
|
||||
|
||||
Backward incompatibilities:
|
||||
|
||||
@@ -44,7 +44,11 @@ class Twig_NodeTraverser
|
||||
*/
|
||||
public function addVisitor(Twig_NodeVisitorInterface $visitor)
|
||||
{
|
||||
$this->visitors[] = $visitor;
|
||||
if (!isset($this->visitors[$visitor->getPriority()])) {
|
||||
$this->visitors[$visitor->getPriority()] = array();
|
||||
}
|
||||
|
||||
$this->visitors[$visitor->getPriority()][] = $visitor;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,8 +62,11 @@ class Twig_NodeTraverser
|
||||
return null;
|
||||
}
|
||||
|
||||
foreach ($this->visitors as $visitor) {
|
||||
$node = $visitor->enterNode($node, $this->env);
|
||||
ksort($this->visitors);
|
||||
foreach ($this->visitors as $visitors) {
|
||||
foreach ($visitors as $visitor) {
|
||||
$node = $visitor->enterNode($node, $this->env);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($node as $k => $n) {
|
||||
@@ -70,8 +77,10 @@ class Twig_NodeTraverser
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->visitors as $visitor) {
|
||||
$node = $visitor->leaveNode($node, $this->env);
|
||||
foreach ($this->visitors as $visitors) {
|
||||
foreach ($visitors as $visitor) {
|
||||
$node = $visitor->leaveNode($node, $this->env);
|
||||
}
|
||||
}
|
||||
|
||||
return $node;
|
||||
|
||||
@@ -149,4 +149,12 @@ class Twig_NodeVisitor_Escaper implements Twig_NodeVisitorInterface
|
||||
$args = new Twig_Node(array(new Twig_Node_Expression_Constant((string) $type, $line)));
|
||||
return new Twig_Node_Expression_Filter($node, $name, $args, $line);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getPriority()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,4 +81,12 @@ class Twig_NodeVisitor_SafeAnalysis implements Twig_NodeVisitorInterface
|
||||
|
||||
return array_intersect($a, $b);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getPriority()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,4 +75,12 @@ class Twig_NodeVisitor_Sandbox implements Twig_NodeVisitorInterface
|
||||
|
||||
return $node;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getPriority()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,4 +36,11 @@ interface Twig_NodeVisitorInterface
|
||||
* @param Twig_NodeInterface The modified node
|
||||
*/
|
||||
public function leaveNode(Twig_NodeInterface $node, Twig_Environment $env);
|
||||
|
||||
/**
|
||||
* Returns the priority.
|
||||
*
|
||||
* @return $priority The priority
|
||||
*/
|
||||
public function getPriority();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user