Skip to content

Commit 5279808

Browse files
authored
Merge pull request #16 from ensi-platform/task-81772
#81772
2 parents 85e00ec + 5398b5b commit 5279808

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

src/Generators/RoutesGenerator.php

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function generate(SpecObjectInterface $specObject): void
2828
$routeMiddleware = $route->{'x-lg-middleware'} ?? null;
2929
$routeWithoutMiddleware = $route->{'x-lg-without-middleware'} ?? null;
3030
if ($handler) {
31-
$handler = $this->getControllerInfoFromHandler($controllerNamespaces, $handler);
31+
$handler = $this->formatHandler($handler, $controllerNamespaces);
3232

3333
$routesStrings .= "Route::{$method}('{$this->trimPath($path)}', {$handler})";
3434
$routesStrings .= $routeName ? "->name('{$routeName}')": "";
@@ -56,31 +56,24 @@ public function generate(SpecObjectInterface $specObject): void
5656
);
5757
}
5858

59-
private function getControllerInfoFromHandler(array &$controllerNamespaces, string $handler): string
59+
private function formatHandler(string $handler, array &$controllerNamespaces): string
6060
{
6161
$parsedRouteHandler = $this->routeHandlerParser->parse($handler);
62-
$class = $parsedRouteHandler->class . '::class';
6362
$method = $parsedRouteHandler->method;
6463

6564
if (isset($controllerNamespaces[$parsedRouteHandler->class])) {
66-
if (!isset($controllerNamespaces[$parsedRouteHandler->class]['items'][$parsedRouteHandler->namespace])) {
65+
if (isset($controllerNamespaces[$parsedRouteHandler->class]['items'][$parsedRouteHandler->namespace])) {
66+
$class = $controllerNamespaces[$parsedRouteHandler->class]['items'][$parsedRouteHandler->namespace]['class_name'] . '::class';
67+
} else {
6768
$count = ++$controllerNamespaces[$parsedRouteHandler->class]['count'];
6869
$class = "{$parsedRouteHandler->class}{$count}";
69-
$controllerNamespaces[$parsedRouteHandler->class] = [
70-
'items' => array_merge(
71-
$controllerNamespaces[$parsedRouteHandler->class]['items'],
72-
[
73-
$parsedRouteHandler->namespace => [
74-
'class_name' => $class,
75-
'namespace' => "{$parsedRouteHandler->namespace}\\{$parsedRouteHandler->class} as {$class}",
76-
],
77-
]
78-
),
79-
'count' => $count,
70+
$controllerNamespaces[$parsedRouteHandler->class]['items'][$parsedRouteHandler->namespace] = [
71+
'class_name' => $class,
72+
'namespace' => "{$parsedRouteHandler->namespace}\\{$parsedRouteHandler->class} as {$class}",
8073
];
74+
$controllerNamespaces[$parsedRouteHandler->class]['count'] = $count;
75+
8176
$class = $class . '::class';
82-
} else {
83-
$class = $controllerNamespaces[$parsedRouteHandler->class]['items'][$parsedRouteHandler->namespace]['class_name'] . '::class';
8477
}
8578
} else {
8679
$controllerNamespaces[$parsedRouteHandler->class] = [
@@ -92,6 +85,8 @@ private function getControllerInfoFromHandler(array &$controllerNamespaces, stri
9285
],
9386
'count' => 1,
9487
];
88+
89+
$class = $parsedRouteHandler->class . '::class';
9590
}
9691

9792
return $method ? "[$class, '$method']" : "$class";

0 commit comments

Comments
 (0)