Skip to content

Commit 0dc64cd

Browse files
committed
fix: ErrorException : Undefined variable $filterClasses
1 parent 064b8b0 commit 0dc64cd

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

system/Test/FilterTestTrait.php

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -125,35 +125,42 @@ protected function getFilterCaller($filter, string $position): Closure
125125
throw new InvalidArgumentException('Invalid filter position passed: ' . $position);
126126
}
127127

128+
if ($filter instanceof FilterInterface) {
129+
$filterInstances = [$filter];
130+
}
131+
128132
if (is_string($filter)) {
129133
// Check for an alias (no namespace)
130134
if (strpos($filter, '\\') === false) {
131135
if (! isset($this->filtersConfig->aliases[$filter])) {
132136
throw new RuntimeException("No filter found with alias '{$filter}'");
133137
}
134138

135-
$filterClasses = $this->filtersConfig->aliases[$filter];
139+
$filterClasses = (array) $this->filtersConfig->aliases[$filter];
140+
} else {
141+
// FQCN
142+
$filterClasses = [$filter];
136143
}
137144

138-
$filterClasses = (array) $filterClasses;
139-
}
145+
$filterInstances = [];
140146

141-
foreach ($filterClasses as $class) {
142-
// Get an instance
143-
$filter = new $class();
147+
foreach ($filterClasses as $class) {
148+
// Get an instance
149+
$filter = new $class();
144150

145-
if (! $filter instanceof FilterInterface) {
146-
throw FilterException::forIncorrectInterface(get_class($filter));
151+
if (! $filter instanceof FilterInterface) {
152+
throw FilterException::forIncorrectInterface(get_class($filter));
153+
}
154+
155+
$filterInstances[] = $filter;
147156
}
148157
}
149158

150159
$request = clone $this->request;
151160

152161
if ($position === 'before') {
153-
return static function (?array $params = null) use ($filterClasses, $request) {
154-
foreach ($filterClasses as $class) {
155-
$filter = new $class();
156-
162+
return static function (?array $params = null) use ($filterInstances, $request) {
163+
foreach ($filterInstances as $filter) {
157164
$result = $filter->before($request, $params);
158165

159166
// @TODO The following logic is in Filters class.
@@ -177,10 +184,8 @@ protected function getFilterCaller($filter, string $position): Closure
177184

178185
$response = clone $this->response;
179186

180-
return static function (?array $params = null) use ($filterClasses, $request, $response) {
181-
foreach ($filterClasses as $class) {
182-
$filter = new $class();
183-
187+
return static function (?array $params = null) use ($filterInstances, $request, $response) {
188+
foreach ($filterInstances as $filter) {
184189
$result = $filter->after($request, $response, $params);
185190

186191
// @TODO The following logic is in Filters class.

0 commit comments

Comments
 (0)