src/Modules/VoucherCart/Controller/BaseController.php line 21

  1. <?php
  2. namespace App\Modules\VoucherCart\Controller;
  3. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  4. use App\Lib\UtilsLib;
  5. use App\Controller\BaseController as MainBaseController;
  6. use App\Modules\VoucherCart\Service\VoucherService;
  7. class BaseController extends MainBaseController
  8. {
  9.     public static function getSubscribedServices(): array
  10.     {
  11.         $services array_merge(parent::getSubscribedServices(), [
  12.                 'voucher_service' => '?' VoucherService::class
  13.             ]);
  14.         
  15.         return $services;
  16.     }
  17.     
  18.     public function beforeAction()
  19.     {
  20.         $adminUserSlug $this->container->get('request_stack')->getMainRequest()->get('adminAlias');
  21.         
  22.         if (!$this->container->get('voucher_service')->setAdminUserByAlias($adminUserSlug))
  23.             throw $this->createNotFoundException();
  24.     }
  25.     
  26.     public function getAdminUser()
  27.     {
  28.         return $this->container->get('voucher_service')->getAdminUser();
  29.     }
  30.     
  31.     public function getAdminAlias()
  32.     {
  33.         return $this->getAdminUser()->getAdmin()->getAlias();
  34.     }
  35.     
  36.     public function returnToPreviousPage()
  37.     {
  38.         $url $this->container->get('request_stack')->getCurrentRequest()->headers->get("referer");
  39.         
  40.         $urlParts parse_url($url);
  41.         
  42.         $queryParams = array();
  43.         if (!empty($urlParts['query']))
  44.             parse_str($urlParts['query'], $queryParams);
  45.         
  46.         if (empty($queryParams['phpsid']))
  47.             $queryParams['phpsid'] = session_id();
  48.         
  49.         $urlParts['query'] = http_build_query($queryParams);
  50.         
  51.         $url UtilsLib::buildUrl($urlParts);
  52.         return $this->redirect($url);
  53.     }
  54.     protected function generateUrl(string $route, array $parameters = [], int $referenceType UrlGeneratorInterface::ABSOLUTE_PATH): string
  55.     {
  56.         $parameters['adminAlias'] = $this->getAdminAlias();
  57.         $parameters['phpsid'] = session_id();
  58.         
  59.         return parent::generateUrl($route$parameters$referenceType);
  60.     }    
  61. }