Created
December 13, 2025 21:56
-
-
Save skmedix/9ef91df9c78e929206cb3cf8d1f3f39e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/config/alternate_listener.php b/config/alternate_listener.php | |
| new file mode 100644 | |
| index 00000000..c2593ec6 | |
| --- /dev/null | |
| +++ b/config/alternate_listener.php | |
| @@ -0,0 +1,17 @@ | |
| +<?php | |
| + | |
| +namespace Symfony\Component\DependencyInjection\Loader\Configurator; | |
| + | |
| +use Presta\SitemapBundle\Event\SitemapAddUrlEvent; | |
| +use Presta\SitemapBundle\EventListener\StaticRoutesAlternateEventListener; | |
| + | |
| +return static function (ContainerConfigurator $container) { | |
| + $services = $container->services(); | |
| + | |
| + $services->set('presta_sitemap.event_listener.static_routes_alternate', StaticRoutesAlternateEventListener::class) | |
| + ->args([ | |
| + service('router'), | |
| + '%presta_sitemap.alternate%', | |
| + ]) | |
| + ->tag('kernel.event_listener', ['event' => SitemapAddUrlEvent::class, 'method' => 'addAlternate']); | |
| +}; | |
| diff --git a/config/messenger.php b/config/messenger.php | |
| new file mode 100644 | |
| index 00000000..9d694f13 | |
| --- /dev/null | |
| +++ b/config/messenger.php | |
| @@ -0,0 +1,18 @@ | |
| +<?php | |
| + | |
| +namespace Symfony\Component\DependencyInjection\Loader\Configurator; | |
| + | |
| +use Presta\SitemapBundle\Messenger\DumpSitemapMessage; | |
| +use Presta\SitemapBundle\Messenger\DumpSitemapMessageHandler; | |
| + | |
| +return static function (ContainerConfigurator $container) { | |
| + $services = $container->services(); | |
| + | |
| + $services->set('presta_sitemap.messenger.message_handler', DumpSitemapMessageHandler::class) | |
| + ->args([ | |
| + service('router'), | |
| + service('presta_sitemap.dumper'), | |
| + '%presta_sitemap.dump_directory%', | |
| + ]) | |
| + ->tag('messenger.message_handler', ['handles' => DumpSitemapMessage::class]); | |
| +}; | |
| diff --git a/config/route_annotation_listener.php b/config/route_annotation_listener.php | |
| new file mode 100644 | |
| index 00000000..892e94c4 | |
| --- /dev/null | |
| +++ b/config/route_annotation_listener.php | |
| @@ -0,0 +1,20 @@ | |
| +<?php | |
| + | |
| +namespace Symfony\Component\DependencyInjection\Loader\Configurator; | |
| + | |
| +use Presta\SitemapBundle\Event\SitemapPopulateEvent; | |
| +use Presta\SitemapBundle\EventListener\RouteAnnotationEventListener; | |
| + | |
| +return static function (ContainerConfigurator $container) { | |
| + $services = $container->services(); | |
| + $parameters = $container->parameters(); | |
| + $parameters->set('presta_sitemap.eventlistener.route_annotation.class', RouteAnnotationEventListener::class); | |
| + | |
| + $services->set('presta_sitemap.eventlistener.route_annotation', '%presta_sitemap.eventlistener.route_annotation.class%') | |
| + ->args([ | |
| + service('router'), | |
| + service('event_dispatcher'), | |
| + '%presta_sitemap.default_section%', | |
| + ]) | |
| + ->tag('kernel.event_listener', ['event' => SitemapPopulateEvent::class, 'method' => 'registerRouteAnnotation']); | |
| +}; | |
| diff --git a/config/routing.php b/config/routing.php | |
| new file mode 100644 | |
| index 00000000..01f2836d | |
| --- /dev/null | |
| +++ b/config/routing.php | |
| @@ -0,0 +1,15 @@ | |
| +<?php | |
| + | |
| +use Presta\SitemapBundle\Controller\SitemapController; | |
| +use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; | |
| + | |
| +return static function (RoutingConfigurator $routes): void { | |
| + $routes->add('PrestaSitemapBundle_index', '/%presta_sitemap.sitemap_file_prefix%.{_format}') | |
| + ->controller([SitemapController::class, 'indexAction']) | |
| + ->requirements(['_format' => 'xml']); | |
| + | |
| + $routes->add('PrestaSitemapBundle_section', '/%presta_sitemap.sitemap_file_prefix%.{name}.{_format}') | |
| + ->controller([SitemapController::class, 'sectionAction']) | |
| + ->requirements(['_format' => 'xml']); | |
| +}; | |
| + | |
| diff --git a/config/services.php b/config/services.php | |
| new file mode 100644 | |
| index 00000000..995ce0cf | |
| --- /dev/null | |
| +++ b/config/services.php | |
| @@ -0,0 +1,59 @@ | |
| +<?php | |
| + | |
| +namespace Symfony\Component\DependencyInjection\Loader\Configurator; | |
| + | |
| +use Presta\SitemapBundle\Command\DumpSitemapsCommand; | |
| +use Presta\SitemapBundle\Controller\SitemapController; | |
| +use Presta\SitemapBundle\Service\Dumper; | |
| +use Presta\SitemapBundle\Service\DumperInterface; | |
| +use Presta\SitemapBundle\Service\Generator; | |
| +use Presta\SitemapBundle\Service\GeneratorInterface; | |
| + | |
| +return static function (ContainerConfigurator $container) { | |
| + $services = $container->services(); | |
| + $parameters = $container->parameters(); | |
| + $parameters->set('presta_sitemap.generator.class', Generator::class); | |
| + $parameters->set('presta_sitemap.dumper.class', Dumper::class); | |
| + | |
| + $services->set('presta_sitemap.generator_default', '%presta_sitemap.generator.class%') | |
| + ->args([ | |
| + service('event_dispatcher'), | |
| + service('router'), | |
| + '%presta_sitemap.items_by_set%', | |
| + ]) | |
| + ->call('setDefaults', ['%presta_sitemap.defaults%']); | |
| + | |
| + $services->set('presta_sitemap.dumper_default', '%presta_sitemap.dumper.class%') | |
| + ->args([ | |
| + service('event_dispatcher'), | |
| + service('filesystem'), | |
| + service('router'), | |
| + '%presta_sitemap.sitemap_file_prefix%', | |
| + '%presta_sitemap.items_by_set%', | |
| + ]) | |
| + ->call('setDefaults', ['%presta_sitemap.defaults%']); | |
| + | |
| + $services->set('presta_sitemap.dump_command', DumpSitemapsCommand::class) | |
| + ->public() | |
| + ->autoconfigure() | |
| + ->args([ | |
| + service('router'), | |
| + service('presta_sitemap.dumper'), | |
| + '%presta_sitemap.dump_directory%', | |
| + ]) | |
| + ->tag('console.command'); | |
| + | |
| + $services->alias(GeneratorInterface::class, 'presta_sitemap.generator'); | |
| + | |
| + $services->alias(DumperInterface::class, 'presta_sitemap.dumper'); | |
| + | |
| + $services->alias(SitemapController::class, 'presta_sitemap.controller') | |
| + ->public(); | |
| + | |
| + $services->set('presta_sitemap.controller', SitemapController::class) | |
| + ->public() | |
| + ->args([ | |
| + service('presta_sitemap.generator'), | |
| + '%presta_sitemap.timetolive%', | |
| + ]); | |
| +}; | |
| diff --git a/src/DependencyInjection/PrestaSitemapExtension.php b/src/DependencyInjection/PrestaSitemapExtension.php | |
| index cc393651..78a27377 100644 | |
| --- a/src/DependencyInjection/PrestaSitemapExtension.php | |
| +++ b/src/DependencyInjection/PrestaSitemapExtension.php | |
| @@ -30,8 +30,8 @@ public function load(array $configs, ContainerBuilder $container): void | |
| $configuration = new Configuration(); | |
| $config = $this->processConfiguration($configuration, $configs); | |
| - $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__ . '/../../config')); | |
| - $loader->load('services.xml'); | |
| + $loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__ . '/../../config')); | |
| + $loader->load('services.php'); | |
| $container->setParameter($this->getAlias() . '.dump_directory', (string)$config['dump_directory']); | |
| $container->setParameter($this->getAlias() . '.timetolive', (int)$config['timetolive']); | |
| @@ -41,16 +41,16 @@ public function load(array $configs, ContainerBuilder $container): void | |
| $container->setParameter($this->getAlias() . '.default_section', (string)$config['default_section']); | |
| if (true === $config['route_annotation_listener']) { | |
| - $loader->load('route_annotation_listener.xml'); | |
| + $loader->load('route_annotation_listener.php'); | |
| if ($this->isConfigEnabled($container, $config['alternate'])) { | |
| $container->setParameter($this->getAlias() . '.alternate', $config['alternate']); | |
| - $loader->load('alternate_listener.xml'); | |
| + $loader->load('alternate_listener.php'); | |
| } | |
| } | |
| if (interface_exists(MessageBusInterface::class)) { | |
| - $loader->load('messenger.xml'); | |
| + $loader->load('messenger.php'); | |
| } | |
| $generator = $container->setAlias('presta_sitemap.generator', $config['generator']); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment