diff --git a/src/Service/Common/AbstractFilterHandler.php b/src/Service/Common/AbstractFilterHandler.php index 53953cb..27cb986 100644 --- a/src/Service/Common/AbstractFilterHandler.php +++ b/src/Service/Common/AbstractFilterHandler.php @@ -11,7 +11,12 @@ use Symfony\Component\HttpFoundation\Session\SessionInterface; abstract class AbstractFilterHandler { protected string $namespace = 'filter:default'; - protected string $modelClass = AbstractFilterDto::class; + + /** + * The DTO a subclass builds. No default: AbstractFilterDto is abstract, so any value here + * would only fatal on instantiation - every handler declares its own. + */ + protected string $modelClass; public function __construct( protected readonly RequestStack $requestStack, @@ -29,6 +34,8 @@ abstract class AbstractFilterHandler public function setModelClass(string $modelClass): static { $this->modelClass = $modelClass; + + return $this; } public function handleRequest(FormInterface $form): AbstractFilterDto @@ -50,13 +57,9 @@ abstract class AbstractFilterHandler $this->getSession()->remove($this->namespace); } - public function getFilterSettings(): AbstractFilterDto - { - } + abstract public function getFilterSettings(): AbstractFilterDto; - protected function saveFilterSettings(AbstractFilterDto $filterDto): void - { - } + abstract protected function saveFilterSettings(AbstractFilterDto $filterDto): void; protected function getSession(): SessionInterface {