ソースを参照

add uses arrays in routes support

Zolotov Alexander 6 年 前
コミット
1e7d61bc11
2 ファイル変更6 行追加4 行削除
  1. 4 2
      src/Commands/GenerateDocumentation.php
  2. 2 2
      src/Tools/Generator.php

+ 4 - 2
src/Commands/GenerateDocumentation.php

@@ -225,7 +225,9 @@ class GenerateDocumentation extends Command
      */
     private function isValidRoute(Route $route)
     {
-        return ! is_callable($route->getAction()['uses']) && ! is_null($route->getAction()['uses']);
+        $action = $route->getAction()['uses'];
+        if (is_array($action)) $action = implode('@', $action);
+        return ! is_callable($action) && ! is_null($action);
     }
 
     /**
@@ -237,7 +239,7 @@ class GenerateDocumentation extends Command
      */
     private function isRouteVisibleForDocumentation($route)
     {
-        list($class, $method) = explode('@', $route);
+        list($class, $method) = is_array($route) ? $route : explode('@', $route);
         $reflection = new ReflectionClass($class);
 
         if (! $reflection->hasMethod($method)) {

+ 2 - 2
src/Tools/Generator.php

@@ -53,8 +53,8 @@ class Generator
      */
     public function processRoute(Route $route, array $rulesToApply = [])
     {
-        $routeAction = $route->getAction();
-        list($class, $method) = explode('@', $routeAction['uses']);
+        $action = $route->getAction()["uses"];
+        list($class, $method) = is_array($action) ? $action : explode('@', $action);
         $controller = new ReflectionClass($class);
         $method = $controller->getMethod($method);