diff options
author | Tristan Darricau <github@nicofuma.fr> | 2014-08-02 19:09:42 +0200 |
---|---|---|
committer | Tristan Darricau <github@nicofuma.fr> | 2014-08-09 16:13:22 +0200 |
commit | 192b8e2568f499aa2ead98a24d8dd5541b1f315a (patch) | |
tree | 0371c204bba34dd9eb480292de6144dbc021fa50 /phpBB/phpbb/template/twig/environment.php | |
parent | 56ca276dcf080972ad2c5ae411b37c392ffed24d (diff) | |
download | forums-192b8e2568f499aa2ead98a24d8dd5541b1f315a.tar forums-192b8e2568f499aa2ead98a24d8dd5541b1f315a.tar.gz forums-192b8e2568f499aa2ead98a24d8dd5541b1f315a.tar.bz2 forums-192b8e2568f499aa2ead98a24d8dd5541b1f315a.tar.xz forums-192b8e2568f499aa2ead98a24d8dd5541b1f315a.zip |
[ticket/11649] Expose Twig through the container
PHPBB3-11649
Diffstat (limited to 'phpBB/phpbb/template/twig/environment.php')
-rw-r--r-- | phpBB/phpbb/template/twig/environment.php | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/phpBB/phpbb/template/twig/environment.php b/phpBB/phpbb/template/twig/environment.php index 476ffd935e..df586af9e5 100644 --- a/phpBB/phpbb/template/twig/environment.php +++ b/phpBB/phpbb/template/twig/environment.php @@ -13,6 +13,9 @@ namespace phpbb\template\twig; +use Twig_Lexer; +use Twig_LexerInterface; + class environment extends \Twig_Environment { /** @var \phpbb\config\config */ @@ -21,6 +24,9 @@ class environment extends \Twig_Environment /** @var \phpbb\path_helper */ protected $phpbb_path_helper; + /** @var \Symfony\Component\DependencyInjection\ContainerInterface */ + protected $container; + /** @var \phpbb\extension\manager */ protected $extension_manager; @@ -38,24 +44,46 @@ class environment extends \Twig_Environment * * @param \phpbb\config\config $phpbb_config The phpBB configuration * @param \phpbb\path_helper $path_helper phpBB path helper + * @param \Symfony\Component\DependencyInjection\ContainerInterface $container * @param \phpbb\extension\manager $extension_manager phpBB extension manager * @param \Twig_LoaderInterface $loader Twig loader interface * @param array $options Array of options to pass to Twig */ - public function __construct($phpbb_config, \phpbb\path_helper $path_helper, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array()) + public function __construct($phpbb_config, \phpbb\path_helper $path_helper, \Symfony\Component\DependencyInjection\ContainerInterface $container, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array()) { $this->phpbb_config = $phpbb_config; $this->phpbb_path_helper = $path_helper; $this->extension_manager = $extension_manager; + $this->container = $container; $this->phpbb_root_path = $this->phpbb_path_helper->get_phpbb_root_path(); $this->web_root_path = $this->phpbb_path_helper->get_web_root_path(); + $options = array_merge(array( + 'cache' => (defined('IN_INSTALL')) ? false : $cache_path, + 'debug' => defined('DEBUG'), + 'auto_reload' => (bool) $this->phpbb_config['load_tplcompile'], + 'autoescape' => false, + ), $options); + return parent::__construct($loader, $options); } /** + * {@inheritdoc} + */ + public function getLexer() + { + if (null === $this->lexer) { + $this->lexer = $this->container->get('template.twig.lexer'); + } + + return $this->lexer; + } + + + /** * Get the list of enabled phpBB extensions * * Used in EVENT node |