Skip to content

Commit 6bec7f8

Browse files
committed
refactor: extract method
1 parent 92e2a4a commit 6bec7f8

File tree

1 file changed

+24
-28
lines changed

1 file changed

+24
-28
lines changed

system/Filters/Filters.php

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -237,23 +237,9 @@ private function runBefore(array $filterClassList)
237237
$className = $filterClassInfo[0];
238238
$arguments = ($filterClassInfo[1] === []) ? null : $filterClassInfo[1];
239239

240-
if (isset($this->filterClassInstances[$className])) {
241-
$class = $this->filterClassInstances[$className];
242-
} else {
243-
$class = new $className();
244-
245-
if (! $class instanceof FilterInterface) {
246-
throw FilterException::forIncorrectInterface($class::class);
247-
}
248-
249-
$this->filterClassInstances[$className] = $class;
250-
}
251-
252-
if (! $class instanceof FilterInterface) {
253-
throw FilterException::forIncorrectInterface($class::class);
254-
}
240+
$instance = $this->createFilter($className);
255241

256-
$result = $class->before($this->request, $arguments);
242+
$result = $instance->before($this->request, $arguments);
257243

258244
if ($result instanceof RequestInterface) {
259245
$this->request = $result;
@@ -288,19 +274,9 @@ private function runAfter(array $filterClassList): ResponseInterface
288274
$className = $filterClassInfo[0];
289275
$arguments = ($filterClassInfo[1] === []) ? null : $filterClassInfo[1];
290276

291-
if (isset($this->filterClassInstances[$className])) {
292-
$class = $this->filterClassInstances[$className];
293-
} else {
294-
$class = new $className();
295-
296-
if (! $class instanceof FilterInterface) {
297-
throw FilterException::forIncorrectInterface($class::class);
298-
}
299-
300-
$this->filterClassInstances[$className] = $class;
301-
}
277+
$instance = $this->createFilter($className);
302278

303-
$result = $class->after($this->request, $this->response, $arguments);
279+
$result = $instance->after($this->request, $this->response, $arguments);
304280

305281
if ($result instanceof ResponseInterface) {
306282
$this->response = $result;
@@ -312,6 +288,26 @@ private function runAfter(array $filterClassList): ResponseInterface
312288
return $this->response;
313289
}
314290

291+
/**
292+
* @param class-string $className
293+
*/
294+
private function createFilter(string $className): FilterInterface
295+
{
296+
if (isset($this->filterClassInstances[$className])) {
297+
return $this->filterClassInstances[$className];
298+
}
299+
300+
$instance = new $className();
301+
302+
if (! $instance instanceof FilterInterface) {
303+
throw FilterException::forIncorrectInterface($instance::class);
304+
}
305+
306+
$this->filterClassInstances[$className] = $instance;
307+
308+
return $instance;
309+
}
310+
315311
/**
316312
* Runs "Required Filters" for the specified position.
317313
*

0 commit comments

Comments
 (0)