vendor/shopware/storefront/Page/Account/Login/AccountLoginPageLoader.php line 69
<?php declare(strict_types=1);namespace Shopware\Storefront\Page\Account\Login;use Shopware\Core\Content\Category\Exception\CategoryNotFoundException;use Shopware\Core\Framework\DataAbstractionLayer\Exception\InconsistentCriteriaIdsException;use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter;use Shopware\Core\Framework\Log\Package;use Shopware\Core\Framework\Routing\Exception\MissingRequestParameterException;use Shopware\Core\System\Country\CountryCollection;use Shopware\Core\System\Country\SalesChannel\AbstractCountryRoute;use Shopware\Core\System\SalesChannel\SalesChannelContext;use Shopware\Core\System\Salutation\SalesChannel\AbstractSalutationRoute;use Shopware\Core\System\Salutation\SalutationCollection;use Shopware\Core\System\Salutation\SalutationEntity;use Shopware\Storefront\Page\GenericPageLoaderInterface;use Symfony\Component\EventDispatcher\EventDispatcherInterface;use Symfony\Component\HttpFoundation\Request;/*** Do not use direct or indirect repository calls in a PageLoader. Always use a store-api route to get or put data.*/#[Package('customer-order')]class AccountLoginPageLoader{/*** @internal*/public function __construct(private readonly GenericPageLoaderInterface $genericLoader,private readonly EventDispatcherInterface $eventDispatcher,private readonly AbstractCountryRoute $countryRoute,private readonly AbstractSalutationRoute $salutationRoute) {}/*** @throws CategoryNotFoundException* @throws InconsistentCriteriaIdsException* @throws MissingRequestParameterException*/public function load(Request $request, SalesChannelContext $salesChannelContext): AccountLoginPage{$page = $this->genericLoader->load($request, $salesChannelContext);$page = AccountLoginPage::createFrom($page);if ($page->getMetaInformation()) {$page->getMetaInformation()->setRobots('noindex,follow');}$page->setCountries($this->getCountries($salesChannelContext));$page->setSalutations($this->getSalutations($salesChannelContext));$this->eventDispatcher->dispatch(new AccountLoginPageLoadedEvent($page, $salesChannelContext, $request));return $page;}/*** @throws InconsistentCriteriaIdsException*/private function getSalutations(SalesChannelContext $salesChannelContext): SalutationCollection{$salutations = $this->salutationRoute->load(new Request(), $salesChannelContext, new Criteria())->getSalutations();$salutations->sort(fn (SalutationEntity $a, SalutationEntity $b) => $b->getSalutationKey() <=> $a->getSalutationKey());return $salutations;}private function getCountries(SalesChannelContext $salesChannelContext): CountryCollection{$criteria = (new Criteria())->addFilter(new EqualsFilter('active', true))->addAssociation('states');$countries = $this->countryRoute->load(new Request(), $criteria, $salesChannelContext)->getCountries();$countries->sortCountryAndStates();return $countries;}}