From 8925cbc9f7f4930cd946baf826e077a23ba6d9fb Mon Sep 17 00:00:00 2001 From: Karson Date: Wed, 21 Jul 2021 14:51:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96API=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=20=E4=BC=98=E5=8C=96=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/command/Api.php | 23 ++----- .../admin/command/Api/library/Builder.php | 64 +++++++++---------- .../admin/command/Api/library/Extractor.php | 4 +- public/assets/js/adminlte.js | 1 - 4 files changed, 40 insertions(+), 52 deletions(-) diff --git a/application/admin/command/Api.php b/application/admin/command/Api.php index b7ed2b34..d9d79c4e 100644 --- a/application/admin/command/Api.php +++ b/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); } diff --git a/application/admin/command/Api/library/Builder.php b/application/admin/command/Api/library/Builder.php index c3621501..1eb8b258 100755 --- a/application/admin/command/Api/library/Builder.php +++ b/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++; } diff --git a/application/admin/command/Api/library/Extractor.php b/application/admin/command/Api/library/Extractor.php index fdd52de1..575bf050 100644 --- a/application/admin/command/Api/library/Extractor.php +++ b/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); diff --git a/public/assets/js/adminlte.js b/public/assets/js/adminlte.js index 0ad144d7..235aff1a 100644 --- a/public/assets/js/adminlte.js +++ b/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 {