14 private array $actionToFilterClassMap;
16 private static function getMap(): array
19 StoreDocumentFilter::class => [
27 StoreViewFilter::class => [
34 private function getFilterClassByAction(
string $action): ?
string
36 if (!isset($this->actionToFilterClassMap))
38 $this->actionToFilterClassMap = [];
40 foreach (self::getMap() as $filterClass => $itemActionNames)
42 foreach ($itemActionNames as $itemAction)
44 $this->actionToFilterClassMap[$itemAction] = $filterClass;
49 return $this->actionToFilterClassMap[$action] ??
null;
54 $filterClassName = $this->getFilterClassByAction($action);
55 if (!$filterClassName)
60 return new $filterClassName($controller);