src/Infrastructure/WhaterBundle/Subscriber/SitemapDistributionNetworksPagesSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. namespace Whater\Infrastructure\WhaterBundle\Subscriber;
  3. use Whater\Infrastructure\CommonBundle\Subscriber\AbstractBusSitemapSubscriber;
  4. use Presta\SitemapBundle\Event\SitemapPopulateEvent;
  5. use Presta\SitemapBundle\Sitemap\Url\UrlConcrete;
  6. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  7. use Whater\Application\UseCase\Whater\CommandRequest\ListDistributionNetworkCommand;
  8. class SitemapDistributionNetworksPagesSubscriber extends AbstractBusSitemapSubscriber
  9. {
  10. /**
  11. * @var UrlGeneratorInterface
  12. */
  13. private $urlGenerator;
  14. /**
  15. * @param UrlGeneratorInterface $urlGenerator
  16. */
  17. public function __construct(
  18. UrlGeneratorInterface $urlGenerator
  19. ) {
  20. $this->urlGenerator = $urlGenerator;
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public static function getSubscribedEvents()
  26. {
  27. return [
  28. SitemapPopulateEvent::class => 'registerDistributionNetworksPages',
  29. ];
  30. }
  31. /**
  32. * @param SitemapPopulateEvent $event
  33. */
  34. public function registerDistributionNetworksPages(SitemapPopulateEvent $event)
  35. {
  36. $distributionNetworksPage = $this->handle(new ListDistributionNetworkCommand(1, 50000, "name", "asc"));
  37. $distributionNetworksPage->setMaxPerPage(50000);
  38. $distributionNetworks = $distributionNetworksPage->getCurrentPageResults();
  39. foreach ($distributionNetworks as $distributionNetwork) {
  40. $townUrl = new UrlConcrete(
  41. $this->urlGenerator->generate(
  42. 'web_public_distribution_network_show_by_slug',
  43. [
  44. 'distributionNetworkSlug' => $distributionNetwork->slug()
  45. ],
  46. UrlGeneratorInterface::ABSOLUTE_URL
  47. ),
  48. null,
  49. UrlConcrete::CHANGEFREQ_WEEKLY
  50. );
  51. $event->getUrlContainer()->addUrl(
  52. $townUrl,
  53. $distributionNetwork->country()->isoCode() . '_distribution_networks'
  54. );
  55. }
  56. }
  57. }