vendor/shopware/storefront/Page/Sitemap/SitemapPageLoader.php line 42

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Storefront\Page\Sitemap;
  3. use Shopware\Core\Content\Sitemap\SalesChannel\AbstractSitemapRoute;
  4. use Shopware\Core\Framework\DataAbstractionLayer\Exception\InconsistentCriteriaIdsException;
  5. use Shopware\Core\Framework\Log\Package;
  6. use Shopware\Core\System\SalesChannel\SalesChannelContext;
  7. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. #[Package('sales-channel')]
  10. class SitemapPageLoader
  11. {
  12.     /**
  13.      * @var EventDispatcherInterface
  14.      */
  15.     private $eventDispatcher;
  16.     /**
  17.      * @var AbstractSitemapRoute
  18.      */
  19.     private $sitemapRoute;
  20.     /**
  21.      * @internal
  22.      */
  23.     public function __construct(
  24.         EventDispatcherInterface $eventDispatcher,
  25.         AbstractSitemapRoute $sitemapRoute
  26.     ) {
  27.         $this->eventDispatcher $eventDispatcher;
  28.         $this->sitemapRoute $sitemapRoute;
  29.     }
  30.     /**
  31.      * @throws InconsistentCriteriaIdsException
  32.      */
  33.     public function load(Request $requestSalesChannelContext $context): SitemapPage
  34.     {
  35.         $page = new SitemapPage();
  36.         $page->setSitemaps($this->sitemapRoute->load($request$context)->getSitemaps()->getElements());
  37.         $this->eventDispatcher->dispatch(
  38.             new SitemapPageLoadedEvent($page$context$request)
  39.         );
  40.         return $page;
  41.     }
  42. }