Browse Source

优化API生成提示
优化后台菜单刷新

Karson 3 years ago
parent
commit
8925cbc9f7

+ 6 - 17
application/admin/command/Api.php

@@ -22,7 +22,7 @@ class Api extends Command
             ->addOption('output', 'o', Option::VALUE_OPTIONAL, 'output index file name', 'api.html')
             ->addOption('template', 'e', Option::VALUE_OPTIONAL, '', 'index.html')
             ->addOption('force', 'f', Option::VALUE_OPTIONAL, 'force override general file', false)
-            ->addOption('title', 't', Option::VALUE_OPTIONAL, 'document title', $site['name'])
+            ->addOption('title', 't', Option::VALUE_OPTIONAL, 'document title', $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('addon', 'a', Option::VALUE_OPTIONAL, 'addon name', null)
@@ -83,16 +83,7 @@ class Api extends Command
         }
 
         if (version_compare(PHP_VERSION, '7.0.0', '<')) {
-            if (extension_loaded('Zend OPcache')) {
-                $configuration = opcache_get_configuration();
-                $directives = $configuration['directives'];
-                $configName = request()->isCli() ? 'opcache.enable_cli' : 'opcache.enable';
-                if (!$directives[$configName]) {
-                    throw new Exception("Please make sure {$configName} is turned on, Get help:https://forum.fastadmin.net/d/1321");
-                }
-            } else {
-                throw new Exception("Please make sure opcache already enabled, Get help:https://forum.fastadmin.net/d/1321");
-            }
+            throw new Exception("Requires PHP version 7.0 or newer");
         }
 
         //控制器名
@@ -127,12 +118,10 @@ class Api extends Command
             'apiurl'      => $url,
             'language'    => $language,
         ];
-        try {
-            $builder = new Builder($classes);
-            $content = $builder->render($template_file, ['config' => $config, 'lang' => $lang]);
-        } catch (\Exception $e) {
-            print_r($e);
-        }
+
+        $builder = new Builder($classes);
+        $content = $builder->render($template_file, ['config' => $config, 'lang' => $lang]);
+
         if (!file_put_contents($output_file, $content)) {
             throw new Exception('Cannot save the content to ' . $output_file);
         }

+ 32 - 32
application/admin/command/Api/library/Builder.php

@@ -70,11 +70,11 @@ class Builder
         $headerslist = array();
         foreach ($docs['ApiHeaders'] as $params) {
             $tr = array(
-                'name'        => $params['name'],
-                'type'        => $params['type'],
-                'sample'      => isset($params['sample']) ? $params['sample'] : '',
-                'required'    => isset($params['required']) ? $params['required'] : false,
-                'description' => isset($params['description']) ? $params['description'] : '',
+                'name'        => $params['name'] ?? '',
+                'type'        => $params['type'] ?? 'string',
+                'sample'      => $params['sample'] ?? '',
+                'required'    => $params['required'] ?? false,
+                'description' => $params['description'] ?? '',
             );
             $headerslist[] = $tr;
         }
@@ -92,10 +92,10 @@ class Builder
         foreach ($docs['ApiParams'] as $params) {
             $tr = array(
                 'name'        => $params['name'],
-                'type'        => isset($params['type']) ? $params['type'] : 'string',
-                'sample'      => isset($params['sample']) ? $params['sample'] : '',
-                'required'    => isset($params['required']) ? $params['required'] : true,
-                'description' => isset($params['description']) ? $params['description'] : '',
+                'type'        => $params['type'] ?? 'string',
+                'sample'      => $params['sample'] ?? '',
+                'required'    => $params['required'] ?? true,
+                'description' => $params['description'] ?? '',
             );
             $paramslist[] = $tr;
         }
@@ -112,11 +112,11 @@ class Builder
         $headerslist = array();
         foreach ($docs['ApiReturnHeaders'] as $params) {
             $tr = array(
-                'name'        => $params['name'],
+                'name'        => $params['name'] ?? '',
                 'type'        => 'string',
-                'sample'      => isset($params['sample']) ? $params['sample'] : '',
+                'sample'      => $params['sample'] ?? '',
                 'required'    => isset($params['required']) && $params['required'] ? 'Yes' : 'No',
-                'description' => isset($params['description']) ? $params['description'] : '',
+                'description' => $params['description'] ?? '',
             );
             $headerslist[] = $tr;
         }
@@ -133,10 +133,10 @@ class Builder
         $paramslist = array();
         foreach ($st_params['ApiReturnParams'] as $params) {
             $tr = array(
-                'name'        => $params['name'],
-                'type'        => isset($params['type']) ? $params['type'] : 'string',
-                'sample'      => isset($params['sample']) ? $params['sample'] : '',
-                'description' => isset($params['description']) ? $params['description'] : '',
+                'name'        => $params['name'] ?? '',
+                'type'        => $params['type'] ?? 'string',
+                'sample'      => $params['sample'] ?? '',
+                'description' => $params['description'] ?? '',
             );
             $paramslist[] = $tr;
         }
@@ -199,22 +199,22 @@ class Builder
                     $route = substr($route, 4);
                 }
                 $docsList[$section][$name] = [
-                    'id'                 => $counter,
-                    'method'             => is_array($docs['ApiMethod'][0]) ? $docs['ApiMethod'][0]['data'] : $docs['ApiMethod'][0],
-                    'methodLabel'        => $this->generateBadgeForMethod($docs),
-                    'section'            => $section,
-                    'route'              => $route,
-                    'title'              => is_array($docs['ApiTitle'][0]) ? $docs['ApiTitle'][0]['data'] : $docs['ApiTitle'][0],
-                    'summary'            => is_array($docs['ApiSummary'][0]) ? $docs['ApiSummary'][0]['data'] : $docs['ApiSummary'][0],
-                    'body'               => isset($docs['ApiBody'][0]) ? is_array($docs['ApiBody'][0]) ? $docs['ApiBody'][0]['data'] : $docs['ApiBody'][0] : '',
-                    'headersList'        => $this->generateHeadersTemplate($docs),
-                    'paramsList'         => $this->generateParamsTemplate($docs),
-                    'returnHeadersList'  => $this->generateReturnHeadersTemplate($docs),
-                    'returnParamsList'   => $this->generateReturnParamsTemplate($docs),
-                    'weigh'              => is_array($docs['ApiWeigh'][0]) ? $docs['ApiWeigh'][0]['data'] : $docs['ApiWeigh'][0],
-                    'return'             => isset($docs['ApiReturn']) ? is_array($docs['ApiReturn'][0]) ? $docs['ApiReturn'][0]['data'] : $docs['ApiReturn'][0] : '',
-                    'needLogin' => $docs['ApiPermissionLogin'][0],
-                    'needRight' => $docs['ApiPermissionRight'][0],
+                    'id'                => $counter,
+                    'method'            => is_array($docs['ApiMethod'][0]) ? $docs['ApiMethod'][0]['data'] : $docs['ApiMethod'][0],
+                    'methodLabel'       => $this->generateBadgeForMethod($docs),
+                    'section'           => $section,
+                    'route'             => $route,
+                    'title'             => is_array($docs['ApiTitle'][0]) ? $docs['ApiTitle'][0]['data'] : $docs['ApiTitle'][0],
+                    'summary'           => is_array($docs['ApiSummary'][0]) ? $docs['ApiSummary'][0]['data'] : $docs['ApiSummary'][0],
+                    'body'              => isset($docs['ApiBody'][0]) ? (is_array($docs['ApiBody'][0]) ? $docs['ApiBody'][0]['data'] : $docs['ApiBody'][0]) : '',
+                    'headersList'       => $this->generateHeadersTemplate($docs),
+                    'paramsList'        => $this->generateParamsTemplate($docs),
+                    'returnHeadersList' => $this->generateReturnHeadersTemplate($docs),
+                    'returnParamsList'  => $this->generateReturnParamsTemplate($docs),
+                    'weigh'             => is_array($docs['ApiWeigh'][0]) ? $docs['ApiWeigh'][0]['data'] : $docs['ApiWeigh'][0],
+                    'return'            => isset($docs['ApiReturn']) ? (is_array($docs['ApiReturn'][0]) ? $docs['ApiReturn'][0]['data'] : $docs['ApiReturn'][0]) : '',
+                    'needLogin'         => $docs['ApiPermissionLogin'][0],
+                    'needRight'         => $docs['ApiPermissionRight'][0],
                 ];
                 $counter++;
             }

+ 2 - 2
application/admin/command/Api/library/Extractor.php

@@ -228,8 +228,8 @@ class Extractor
         }
 
         $properties = $class->getDefaultProperties();
-        $noNeedLogin = isset($properties['noNeedLogin']) ? is_array($properties['noNeedLogin']) ? $properties['noNeedLogin'] : [$properties['noNeedLogin']] : [];
-        $noNeedRight = isset($properties['noNeedRight']) ? is_array($properties['noNeedRight']) ? $properties['noNeedRight'] : [$properties['noNeedRight']] : [];
+        $noNeedLogin = isset($properties['noNeedLogin']) ? (is_array($properties['noNeedLogin']) ? $properties['noNeedLogin'] : [$properties['noNeedLogin']]) : [];
+        $noNeedRight = isset($properties['noNeedRight']) ? (is_array($properties['noNeedRight']) ? $properties['noNeedRight'] : [$properties['noNeedRight']]) : [];
 
         preg_match_all("/\*[\s]+(.*)(\\r\\n|\\r|\\n)/U", str_replace('/**', '', $docblockMethod), $methodArr);
         preg_match_all("/\*[\s]+(.*)(\\r\\n|\\r|\\n)/U", str_replace('/**', '', $dockblockClass), $classArr);

+ 0 - 1
public/assets/js/adminlte.js

@@ -443,7 +443,6 @@ function _init() {
                         //parent_li.addClass('active');
                         //Fix the layout in case the sidebar stretches over the height of the window
                         // _this.layout.fix();
-                        _this.layout.fixSidebar();
                     });
                     parent_li.addClass('treeview-open');
                 } else {