src/WebBundle/Handler/Locale/Rule/AbstractRuleHandler.php line 46

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace WebBundle\Handler\Locale\Rule;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use WebBundle\Handler\Locale\MachineLocaleHandler;
  6. abstract class AbstractRuleHandler implements RequestRuleHandlerInterface
  7. {
  8.     protected ?RequestRuleHandlerInterface $nextHandler null;
  9.     protected MachineLocaleHandler $machineLocaleHandler;
  10.     private static array $_models = [];
  11.     public static function getRule(MachineLocaleHandler $machineLocaleHandler): AbstractRuleHandler
  12.     {
  13.         $className = static::class;
  14.         if (!array_key_exists($classNameself::$_models)) {
  15.             self::$_models[$className] = new $className(null);
  16.             self::$_models[$className]->machineLocaleHandler $machineLocaleHandler;
  17.         }
  18.         return self::$_models[$className];
  19.     }
  20.     public function setMachineLocale(MachineLocaleHandler $machineLocaleHandler): void
  21.     {
  22.         $this->machineLocaleHandler $machineLocaleHandler;
  23.     }
  24.     public function nextStep(RequestRuleHandlerInterface $nextHandler): RequestRuleHandlerInterface
  25.     {
  26.         $this->nextHandler $nextHandler;
  27.         return $nextHandler;
  28.     }
  29.     public function execute(): ?Response
  30.     {
  31.         if (null === $this->nextHandler) {
  32.             return null;
  33.         }
  34.         return $this->nextHandler->execute();
  35.     }
  36. }