aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2016-03-23 11:26:30 +0100
committerTristan Darricau <tristan.darricau@sensiolabs.com>2016-04-03 16:22:07 +0200
commit5cdbef860de6eccbf1ad62390668acc7fbccb46a (patch)
tree57f24452d3e51a0708e05fcf185000069406598c /phpBB/phpbb
parente8762ce3cb25faddfb1797377208876e1e65c785 (diff)
downloadforums-5cdbef860de6eccbf1ad62390668acc7fbccb46a.tar
forums-5cdbef860de6eccbf1ad62390668acc7fbccb46a.tar.gz
forums-5cdbef860de6eccbf1ad62390668acc7fbccb46a.tar.bz2
forums-5cdbef860de6eccbf1ad62390668acc7fbccb46a.tar.xz
forums-5cdbef860de6eccbf1ad62390668acc7fbccb46a.zip
[ticket/13616] Uses symfony/proxy-manager-bridge to lazy load twig lexer
PHPBB3-13616
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r--phpBB/phpbb/di/container_builder.php8
-rw-r--r--phpBB/phpbb/di/extension/core.php6
-rw-r--r--phpBB/phpbb/template/twig/environment.php21
3 files changed, 12 insertions, 23 deletions
diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php
index 7bfe1bbb87..0462fb60c2 100644
--- a/phpBB/phpbb/di/container_builder.php
+++ b/phpBB/phpbb/di/container_builder.php
@@ -14,6 +14,8 @@
namespace phpbb\di;
use phpbb\filesystem\filesystem;
+use Symfony\Bridge\ProxyManager\LazyProxy\Instantiator\RuntimeInstantiator;
+use Symfony\Bridge\ProxyManager\LazyProxy\PhpDumper\ProxyDumper;
use Symfony\Component\Config\ConfigCache;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -460,7 +462,10 @@ class container_builder
{
try
{
- $dumper = new PhpDumper($this->container);
+ $dumper = new PhpDumper($this->container);
+ $proxy_dumper = new ProxyDumper();
+ $dumper->setProxyDumper($proxy_dumper);
+
$cached_container_dump = $dumper->dump(array(
'class' => 'phpbb_cache_container',
'base_class' => 'Symfony\\Component\\DependencyInjection\\ContainerBuilder',
@@ -483,6 +488,7 @@ class container_builder
protected function create_container(array $extensions)
{
$container = new ContainerBuilder(new ParameterBag($this->get_core_parameters()));
+ $container->setProxyInstantiator(new RuntimeInstantiator());
$extensions_alias = array();
diff --git a/phpBB/phpbb/di/extension/core.php b/phpBB/phpbb/di/extension/core.php
index c48a80a558..2faeff3636 100644
--- a/phpBB/phpbb/di/extension/core.php
+++ b/phpBB/phpbb/di/extension/core.php
@@ -71,7 +71,7 @@ class core extends Extension
// Set the Twig options if defined in the environment
$definition = $container->getDefinition('template.twig.environment');
- $twig_environment_options = $definition->getArgument(7);
+ $twig_environment_options = $definition->getArgument(6);
if ($config['twig']['debug'])
{
$twig_environment_options['debug'] = true;
@@ -81,8 +81,8 @@ class core extends Extension
$twig_environment_options['auto_reload'] = true;
}
- // Replace the 8th argument, the options passed to the environment
- $definition->replaceArgument(7, $twig_environment_options);
+ // Replace the 7th argument, the options passed to the environment
+ $definition->replaceArgument(6, $twig_environment_options);
if ($config['twig']['enable_debug_extension'])
{
diff --git a/phpBB/phpbb/template/twig/environment.php b/phpBB/phpbb/template/twig/environment.php
index 56c85c8d71..179412a2e3 100644
--- a/phpBB/phpbb/template/twig/environment.php
+++ b/phpBB/phpbb/template/twig/environment.php
@@ -50,20 +50,18 @@ class environment extends \Twig_Environment
* @param \phpbb\config\config $phpbb_config The phpBB configuration
* @param \phpbb\filesystem\filesystem $filesystem
* @param \phpbb\path_helper $path_helper phpBB path helper
- * @param \Symfony\Component\DependencyInjection\ContainerInterface $container The dependency injection container
* @param string $cache_path The path to the cache directory
* @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\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, \Symfony\Component\DependencyInjection\ContainerInterface $container, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array())
+ public function __construct(\phpbb\config\config $phpbb_config, \phpbb\filesystem\filesystem $filesystem, \phpbb\path_helper $path_helper, $cache_path, \phpbb\extension\manager $extension_manager = null, \Twig_LoaderInterface $loader = null, $options = array())
{
$this->phpbb_config = $phpbb_config;
$this->filesystem = $filesystem;
$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();
@@ -77,25 +75,10 @@ class environment extends \Twig_Environment
'autoescape' => false,
), $options);
- return parent::__construct($loader, $options);
+ parent::__construct($loader, $options);
}
/**
- * {@inheritdoc}
- */
- public function getLexer()
- {
- if (null === $this->lexer)
- {
- $this->lexer = $this->container->get('template.twig.lexer');
- $this->lexer->set_environment($this);
- }
-
- return $this->lexer;
- }
-
-
- /**
* Get the list of enabled phpBB extensions
*
* Used in EVENT node