Browse Source

!166 增加可选api生成文档(修改参数冲突)
Merge pull request !166 from kingang/master

Karson 5 years ago
parent
commit
12a62eaa05
1 changed files with 20 additions and 10 deletions
  1. 20 10
      application/admin/command/Api.php

+ 20 - 10
application/admin/command/Api.php

@@ -26,6 +26,7 @@ class Api extends Command
             ->addOption('author', 'a', Option::VALUE_OPTIONAL, 'document author', $site['name'])
             ->addOption('class', 'c', Option::VALUE_OPTIONAL | Option::VALUE_IS_ARRAY, 'extend class', null)
             ->addOption('language', 'l', Option::VALUE_OPTIONAL, 'language', 'zh-cn')
+            ->addOption('controller', 'r', Option::VALUE_REQUIRED | Option::VALUE_IS_ARRAY, 'controller name', null)
             ->setDescription('Build Api document from controller');
     }
 
@@ -80,16 +81,25 @@ class Api extends Command
                 throw new Exception("Please make sure opcache already enabled, Get help:https://forum.fastadmin.net/d/1321");
             }
         }
-
-        $controllerDir = $moduleDir . Config::get('url_controller_layer') . DS;
-        $files = new \RecursiveIteratorIterator(
-            new \RecursiveDirectoryIterator($controllerDir),
-            \RecursiveIteratorIterator::LEAVES_ONLY
-        );
-
-        foreach ($files as $name => $file) {
-            if (!$file->isDir() && $file->getExtension() == 'php') {
-                $filePath = $file->getRealPath();
+        //控制器名
+        $controller = $input->getOption('controller') ?: '';
+        if(!$controller) {
+            $controllerDir = $moduleDir . Config::get('url_controller_layer') . DS;
+            $files = new \RecursiveIteratorIterator(
+                new \RecursiveDirectoryIterator($controllerDir),
+                \RecursiveIteratorIterator::LEAVES_ONLY
+            );
+
+            foreach ($files as $name => $file) {
+                if (!$file->isDir() && $file->getExtension() == 'php') {
+                    $filePath = $file->getRealPath();
+                    $classes[] = $this->get_class_from_file($filePath);
+                }
+            }
+        }
+        else{
+            foreach ($controller as $index => $item) {
+                $filePath=$moduleDir . Config::get('url_controller_layer') . DS .$item.'.php';
                 $classes[] = $this->get_class_from_file($filePath);
             }
         }