From eaf53f688950d4c8a0a62cd07d75df733a988dd8 Mon Sep 17 00:00:00 2001 From: idetox Date: Thu, 11 Jun 2020 13:26:19 +0200 Subject: [PATCH] [Fragment] Move configuration to PHP --- .../FrameworkExtension.php | 8 +-- .../Resources/config/fragment_listener.php | 22 +++++++ .../Resources/config/fragment_listener.xml | 16 ----- .../Resources/config/fragment_renderer.php | 65 +++++++++++++++++++ .../Resources/config/fragment_renderer.xml | 51 --------------- 5 files changed, 91 insertions(+), 71 deletions(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.php delete mode 100644 src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.xml create mode 100644 src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.php delete mode 100644 src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.xml diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index c01fce851b637..a320252165b7e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -175,7 +175,7 @@ public function load(array $configs, ContainerBuilder $container) $loader->load('web.xml'); $loader->load('services.xml'); - $loader->load('fragment_renderer.xml'); + $phpLoader->load('fragment_renderer.php'); $phpLoader->load('error_renderer.php'); if (interface_exists(PsrEventDispatcherInterface::class)) { @@ -367,7 +367,7 @@ public function load(array $configs, ContainerBuilder $container) $this->registerValidationConfiguration($config['validation'], $container, $loader, $propertyInfoEnabled); $this->registerEsiConfiguration($config['esi'], $container, $loader); $this->registerSsiConfiguration($config['ssi'], $container, $phpLoader); - $this->registerFragmentsConfiguration($config['fragments'], $container, $loader); + $this->registerFragmentsConfiguration($config['fragments'], $container, $phpLoader); $this->registerTranslatorConfiguration($config['translator'], $container, $loader, $config['default_locale']); $this->registerProfilerConfiguration($config['profiler'], $container, $loader, $phpLoader); $this->registerWorkflowConfiguration($config['workflows'], $container, $loader); @@ -554,7 +554,7 @@ private function registerSsiConfiguration(array $config, ContainerBuilder $conta $loader->load('ssi.php'); } - private function registerFragmentsConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader) + private function registerFragmentsConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader) { if (!$this->isConfigEnabled($container, $config)) { $container->removeDefinition('fragment.renderer.hinclude'); @@ -564,7 +564,7 @@ private function registerFragmentsConfiguration(array $config, ContainerBuilder $container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']); - $loader->load('fragment_listener.xml'); + $loader->load('fragment_listener.php'); $container->setParameter('fragment.path', $config['path']); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.php new file mode 100644 index 0000000000000..465c304263dac --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Loader\Configurator; + +use Symfony\Component\HttpKernel\EventListener\FragmentListener; + +return static function (ContainerConfigurator $container) { + $container->services() + ->set('fragment.listener', FragmentListener::class) + ->args([service('uri_signer'), param('fragment.path')]) + ->tag('kernel.event_subscriber') + ; +}; diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.xml deleted file mode 100644 index b7c64119f88e6..0000000000000 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_listener.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - %fragment.path% - - - diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.php new file mode 100644 index 0000000000000..2d42a10026f05 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Loader\Configurator; + +use Symfony\Component\HttpKernel\DependencyInjection\LazyLoadingFragmentHandler; +use Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer; +use Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer; +use Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer; +use Symfony\Component\HttpKernel\Fragment\SsiFragmentRenderer; + +return static function (ContainerConfigurator $container) { + $container->parameters() + ->set('fragment.renderer.hinclude.global_template', null) + ->set('fragment.path', '/_fragment') + ; + + $container->services() + ->set('fragment.handler', LazyLoadingFragmentHandler::class) + ->args([ + abstract_arg('fragment renderer locator'), + service('request_stack'), + param('kernel.debug'), + ]) + + ->set('fragment.renderer.inline', InlineFragmentRenderer::class) + ->args([service('http_kernel'), service('event_dispatcher')]) + ->call('setFragmentPath', [param('fragment.path')]) + ->tag('kernel.fragment_renderer', ['alias' => 'inline']) + + ->set('fragment.renderer.hinclude', HIncludeFragmentRenderer::class) + ->args([ + service('twig')->nullOnInvalid(), + service('uri_signer'), + param('fragment.renderer.hinclude.global_template'), + ]) + ->call('setFragmentPath', [param('fragment.path')]) + + ->set('fragment.renderer.esi', EsiFragmentRenderer::class) + ->args([ + service('esi')->nullOnInvalid(), + service('fragment.renderer.inline'), + service('uri_signer'), + ]) + ->call('setFragmentPath', [param('fragment.path')]) + ->tag('kernel.fragment_renderer', ['alias' => 'esi']) + + ->set('fragment.renderer.ssi', SsiFragmentRenderer::class) + ->args([ + service('ssi')->nullOnInvalid(), + service('fragment.renderer.inline'), + service('uri_signer'), + ]) + ->call('setFragmentPath', [param('fragment.path')]) + ->tag('kernel.fragment_renderer', ['alias' => 'ssi']) + ; +}; diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.xml deleted file mode 100644 index 827a22f9a4668..0000000000000 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/fragment_renderer.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - /_fragment - - - - - - - - - %kernel.debug% - - - - - - - %fragment.path% - - - - - - %fragment.renderer.hinclude.global_template% - %fragment.path% - - - - - - - - %fragment.path% - - - - - - - - %fragment.path% - - -