From 92e97b9d900562dafc3703e43c4aee3e5dfe4b69 Mon Sep 17 00:00:00 2001 From: Vasiliy Horbachenko Date: Tue, 26 Mar 2013 03:33:16 +0200 Subject: [PATCH] Registration a Twig_SimpleFunction after extensions initialized throw not LogicException, but Fatal Error --- lib/Twig/Environment.php | 28 ++++++++++++++-------------- 1 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Twig/Environment.php b/lib/Twig/Environment.php index 04339e4..7dcf253 100644 --- a/lib/Twig/Environment.php +++ b/lib/Twig/Environment.php @@ -756,10 +756,6 @@ class Twig_Environment */ public function addFilter($name, $filter = null) { - if ($this->extensionInitialized) { - throw new LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name)); - } - if (!$name instanceof Twig_SimpleFilter && !($filter instanceof Twig_SimpleFilter || $filter instanceof Twig_FilterInterface)) { throw new LogicException('A filter must be an instance of Twig_FilterInterface or Twig_SimpleFilter'); } @@ -768,7 +764,11 @@ class Twig_Environment $filter = $name; $name = $filter->getName(); } - + + if ($this->extensionInitialized) { + throw new LogicException(sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name)); + } + $this->staging->addFilter($name, $filter); } @@ -845,10 +845,6 @@ class Twig_Environment */ public function addTest($name, $test = null) { - if ($this->extensionInitialized) { - throw new LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $name)); - } - if (!$name instanceof Twig_SimpleTest && !($test instanceof Twig_SimpleTest || $test instanceof Twig_TestInterface)) { throw new LogicException('A test must be an instance of Twig_TestInterface or Twig_SimpleTest'); } @@ -857,6 +853,10 @@ class Twig_Environment $test = $name; $name = $test->getName(); } + + if ($this->extensionInitialized) { + throw new LogicException(sprintf('Unable to add test "%s" as extensions have already been initialized.', $name)); + } $this->staging->addTest($name, $test); } @@ -903,10 +903,6 @@ class Twig_Environment */ public function addFunction($name, $function = null) { - if ($this->extensionInitialized) { - throw new LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $name)); - } - if (!$name instanceof Twig_SimpleFunction && !($function instanceof Twig_SimpleFunction || $function instanceof Twig_FunctionInterface)) { throw new LogicException('A function must be an instance of Twig_FunctionInterface or Twig_SimpleFunction'); } @@ -915,7 +911,11 @@ class Twig_Environment $function = $name; $name = $function->getName(); } - + + if ($this->extensionInitialized) { + throw new LogicException(sprintf('Unable to add function "%s" as extensions have already been initialized.', $name)); + } + $this->staging->addFunction($name, $function); } -- 1.7.2.5