mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 22:10:45 +02:00
[ticket/13616] Uses symfony/proxy-manager-bridge to lazy load twig lexer
PHPBB3-13616
This commit is contained in:
@@ -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();
|
||||
|
||||
|
@@ -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'])
|
||||
{
|
||||
|
@@ -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,24 +75,9 @@ 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
|
||||
*
|
||||
|
Reference in New Issue
Block a user