|
13 | 13 | use Eukles\Entity\EntityFactoryConfig; |
14 | 14 | use Eukles\Entity\EntityFactoryConfigException as EntityFactoryConfigExceptionAlias; |
15 | 15 | use Eukles\Entity\EntityRequestInterface; |
16 | | -use Eukles\Entity\Middleware\CollectionFetch; |
17 | 16 | use Eukles\Entity\Middleware\EntityMiddleware; |
18 | 17 | use Eukles\RouteMap\RouteMapInterface; |
19 | 18 | use Eukles\Service\Router\Exception\RouteEmptyValueException; |
20 | 19 | use Eukles\Service\Router\Middleware\SuccessHeaderLocationMiddleware; |
21 | 20 | use Eukles\Service\Router\Middleware\SuccessStatusMiddleware; |
22 | 21 | use Eukles\Slim\DeferredCallable; |
23 | 22 | use InvalidArgumentException; |
| 23 | +use Psr\Http\Message\ResponseInterface; |
| 24 | +use Psr\Http\Message\ServerRequestInterface; |
24 | 25 | use RuntimeException; |
25 | 26 | use Zend\Permissions\Acl\Role\GenericRole; |
26 | 27 | use Zend\Permissions\Acl\Role\RoleInterface; |
@@ -109,6 +110,17 @@ public function __construct(RouteMapInterface $routeMap, $method) |
109 | 110 | $this->methods = array_map("strtoupper", $this->methods); |
110 | 111 | } |
111 | 112 |
|
| 113 | + public function __invoke(ServerRequestInterface $request, ResponseInterface $response) |
| 114 | + { |
| 115 | + if (!$this->container instanceof \Psr\Container\ContainerInterface) { |
| 116 | + throw new RuntimeException("Container is required to invoke Route"); |
| 117 | + } |
| 118 | + $class = $this->getActionClass(); |
| 119 | + $this->callable = [new $class($this->container), $this->getActionMethod()]; |
| 120 | + |
| 121 | + return parent::__invoke($request, $response); |
| 122 | + } |
| 123 | + |
112 | 124 | /** |
113 | 125 | * @param int $status |
114 | 126 | * @param string $description |
@@ -137,9 +149,6 @@ public function addStatus(int $status, string $description = "", $isMainSuccess |
137 | 149 | */ |
138 | 150 | public function bindToRouter(RouterInterface $router) |
139 | 151 | { |
140 | | - $this->callable = sprintf('%s:%s', $this->getActionClass(), |
141 | | - $this->getActionMethod()); |
142 | | - |
143 | 152 | $router->addResourceRoute($this); |
144 | 153 | } |
145 | 154 |
|
|
0 commit comments