@@ -22,7 +22,7 @@ public function addFilter(string $filter): self
2222 throw new FilterClassNotFound ();
2323 }
2424
25- if (! is_subclass_of ($ filter , FilterInterface ::class)) {
25+ if (! is_subclass_of ($ filter , AbstractFilter ::class)) {
2626 throw new IncorrectFilterException ($ filter );
2727 }
2828
@@ -55,11 +55,11 @@ public function resetLimit(): self
5555 public function applyFilters (Builder &$ builder , array $ args ): self
5656 {
5757 foreach ($ this ->filters as $ filter ) {
58- $ neededKeys = $ filter ::neededKeys ();
59- $ neededArgs = $ this ->extractNeededArgs ($ neededKeys , $ args );
58+ $ neededArgs = $ this ->extractNeededArgs ($ filter , $ args );
6059
6160 if ($ filter ::isApplicable ($ neededArgs )) {
62- (new $ filter )->apply ($ builder , $ neededArgs );
61+ $ filterInstance = new $ filter ($ neededArgs );
62+ $ filterInstance ->apply ($ builder );
6363 }
6464 }
6565
@@ -73,8 +73,8 @@ public function applyFilters(Builder &$builder, array $args): self
7373 return $ this ;
7474 }
7575
76- private function extractNeededArgs (array $ neededKeys , array $ args ): array
76+ private function extractNeededArgs (string $ class , array $ args ): array
7777 {
78- return array_intersect_key ($ args , array_flip ($ neededKeys ));
78+ return array_intersect_key ($ args , array_flip (array_keys ( get_class_vars ( $ class )) ));
7979 }
8080}
0 commit comments