|
7 | 7 | use Api\App\Attribute\MethodDeprecation; |
8 | 8 | use Api\App\Attribute\ResourceDeprecation; |
9 | 9 | use Api\App\Exception\DeprecationConflictException; |
| 10 | +use Api\App\Service\HandlerService; |
10 | 11 | use Core\App\Message; |
11 | 12 | use Dot\DependencyInjection\Attribute\Inject; |
12 | | -use Dot\Router\Middleware\LazyLoadingMiddleware; |
13 | | -use Laminas\Stratigility\MiddlewarePipe; |
14 | | -use Mezzio\Middleware\LazyLoadingMiddleware as MezzioLazyLoadingMiddleware; |
15 | | -use Mezzio\Router\RouteResult; |
16 | 13 | use Psr\Http\Message\ResponseInterface; |
17 | 14 | use Psr\Http\Message\ServerRequestInterface; |
18 | 15 | use Psr\Http\Server\MiddlewareInterface; |
19 | 16 | use Psr\Http\Server\RequestHandlerInterface; |
20 | 17 | use ReflectionClass; |
21 | 18 | use ReflectionException; |
22 | 19 | use ReflectionMethod; |
23 | | -use RuntimeException; |
24 | 20 |
|
25 | 21 | use function array_column; |
26 | 22 | use function array_filter; |
@@ -57,19 +53,10 @@ public function process( |
57 | 53 | ServerRequestInterface $request, |
58 | 54 | RequestHandlerInterface $handler |
59 | 55 | ): ResponseInterface { |
60 | | - $response = $handler->handle($request); |
61 | | - $routeResult = $request->getAttribute(RouteResult::class); |
62 | | - if (! $routeResult instanceof RouteResult || $routeResult->isFailure()) { |
63 | | - return $response; |
64 | | - } |
65 | | - |
66 | | - $matchedRoute = $routeResult->getMatchedRoute(); |
67 | | - if (! $matchedRoute) { |
68 | | - return $response; |
69 | | - } |
| 56 | + $response = $handler->handle($request); |
70 | 57 |
|
71 | | - $reflectionHandler = $this->getHandler($matchedRoute->getMiddleware()); |
72 | | - if (empty($reflectionHandler)) { |
| 58 | + $reflectionHandler = HandlerService::fromRequest($request); |
| 59 | + if (! $reflectionHandler instanceof ReflectionClass) { |
73 | 60 | return $response; |
74 | 61 | } |
75 | 62 |
|
@@ -136,38 +123,6 @@ private function getReflectionAttributes(ReflectionClass $reflectionObject): arr |
136 | 123 | return $attributes; |
137 | 124 | } |
138 | 125 |
|
139 | | - /** |
140 | | - * @throws ReflectionException |
141 | | - */ |
142 | | - private function getHandler(MiddlewareInterface $routeMiddleware): ?ReflectionClass |
143 | | - { |
144 | | - $reflectionHandler = null; |
145 | | - if ( |
146 | | - $routeMiddleware instanceof MezzioLazyLoadingMiddleware |
147 | | - || $routeMiddleware instanceof LazyLoadingMiddleware |
148 | | - ) { |
149 | | - /** @var class-string $routeMiddlewareName */ |
150 | | - $routeMiddlewareName = $routeMiddleware->middlewareName; |
151 | | - $reflectionMiddlewareClass = new ReflectionClass($routeMiddlewareName); |
152 | | - if ($reflectionMiddlewareClass->implementsInterface(RequestHandlerInterface::class)) { |
153 | | - $reflectionHandler = $reflectionMiddlewareClass; |
154 | | - } |
155 | | - } elseif ($routeMiddleware instanceof MiddlewarePipe) { |
156 | | - $reflectionClass = new ReflectionClass($routeMiddleware); |
157 | | - $middlewarePipeline = $reflectionClass->getProperty('pipeline')->getValue($routeMiddleware); |
158 | | - for ($middlewarePipeline->rewind(); $middlewarePipeline->valid(); $middlewarePipeline->next()) { |
159 | | - $reflectionMiddlewareClass = new ReflectionClass($middlewarePipeline->current()->middlewareName); |
160 | | - if ($reflectionMiddlewareClass->implementsInterface(RequestHandlerInterface::class)) { |
161 | | - $reflectionHandler = $reflectionMiddlewareClass; |
162 | | - } |
163 | | - } |
164 | | - } else { |
165 | | - throw new RuntimeException('Invalid route middleware provided.'); |
166 | | - } |
167 | | - |
168 | | - return $reflectionHandler; |
169 | | - } |
170 | | - |
171 | 126 | private function validateAttributes(array $attributes): void |
172 | 127 | { |
173 | 128 | $intersect = array_intersect(self::DEPRECATION_ATTRIBUTES, array_column($attributes, 'deprecationType')); |
|
0 commit comments