From c4b146443491ea4866ead58948745f9de86f4101 Mon Sep 17 00:00:00 2001 From: Tiago Brito Date: Tue, 27 Mar 2018 15:08:17 +0100 Subject: [PATCH 1/3] Added retrocompability between Twig v1 and v2 --- src/Renderers/TwigRenderer.php | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Renderers/TwigRenderer.php b/src/Renderers/TwigRenderer.php index a99cc8f..61bf939 100644 --- a/src/Renderers/TwigRenderer.php +++ b/src/Renderers/TwigRenderer.php @@ -27,17 +27,31 @@ public function __construct(array $templates_dirs, array $options = array()) { $loaders = new ChainLoader(); + if (class_exists('Twig_Loader_Filesystem')) { + $class = 'Twig_Loader_Filesystem'; + $envClass = 'Twig_Environment'; + } else { + $class = 'FilesystemLoader'; + $envClass = 'Environment'; + } + foreach ($templates_dirs as $template_dir) { - $loaders->addLoader(new FilesystemLoader($template_dir)); + $loaders->addLoader(new $class($template_dir)); } - $this->twig = new Environment($loaders, $options); + $this->twig = new $envClass($loaders, $options); $this->setFilters(); } public function setFilters() { - $filter_merge_str = new TwigFilter('merge_str', function ($attrs, array $options = array()) { + if (class_exists('Twig_SimpleFilter')) { + $class = 'Twig_SimpleFilter'; + } else { + $class = 'TwigFilter'; + } + + $filter_merge_str = new $class('merge_str', function ($attrs, array $options = array()) { $key = $options[0]; $value = $options[1]; From a22ea130123ccfac77d5bcec87977d6952986672 Mon Sep 17 00:00:00 2001 From: Tiago Brito Date: Tue, 27 Mar 2018 15:10:18 +0100 Subject: [PATCH 2/3] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e900113..0dd2583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - `data` and `files` were wrongly exposed on `Form` class. Changed visibility to private and added `getData` and `getFiles` methods. - Allow non-required file fields - Fixed choice field values check + - Added retrocompability between Twig v1 and v2 ## [2.0.3] - 2017-12-13 ### Added From 2f1a757cf151fbf5906e4939a359f3d378ce7abd Mon Sep 17 00:00:00 2001 From: Tiago Brito Date: Tue, 27 Mar 2018 15:20:29 +0100 Subject: [PATCH 3/3] Added comments --- src/Renderers/TwigRenderer.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Renderers/TwigRenderer.php b/src/Renderers/TwigRenderer.php index 61bf939..cd4b25c 100644 --- a/src/Renderers/TwigRenderer.php +++ b/src/Renderers/TwigRenderer.php @@ -27,6 +27,7 @@ public function __construct(array $templates_dirs, array $options = array()) { $loaders = new ChainLoader(); + /* To maintain compatibility with non-PSR4 versions of Twig */ if (class_exists('Twig_Loader_Filesystem')) { $class = 'Twig_Loader_Filesystem'; $envClass = 'Twig_Environment'; @@ -45,6 +46,7 @@ public function __construct(array $templates_dirs, array $options = array()) public function setFilters() { + /* To maintain compatibility with non-PSR4 versions of Twig */ if (class_exists('Twig_SimpleFilter')) { $class = 'Twig_SimpleFilter'; } else {