From: Vasiliy Horbachenko Date: Tue, 26 Mar 2013 01:33:16 +0000 (+0200) Subject: Registration a Twig_SimpleFunction after extensions initialized throw not LogicExcept... X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=92e97b9d900562dafc3703e43c4aee3e5dfe4b69;p=konrad%2Ftwig.git Registration a Twig_SimpleFunction after extensions initialized throw not LogicException, but Fatal Error --- 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); }