正在显示
2 个修改的文件
包含
56 行增加
和
17 行删除
@@ -20,7 +20,7 @@ class SwrpcGenCom extends Command | @@ -20,7 +20,7 @@ class SwrpcGenCom extends Command | ||
20 | * | 20 | * |
21 | * @var string | 21 | * @var string |
22 | */ | 22 | */ |
23 | - protected $signature = 'swrpc:gen {-m|--module=}'; | 23 | + protected $signature = 'swrpc:gen {-m|--module=} {-s|--service=}'; |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * The console command description. | 26 | * The console command description. |
@@ -55,20 +55,16 @@ class SwrpcGenCom extends Command | @@ -55,20 +55,16 @@ class SwrpcGenCom extends Command | ||
55 | 55 | ||
56 | $filters = []; | 56 | $filters = []; |
57 | $specifyModules = $this->option('module') ? explode(',', $this->option('module')) : []; | 57 | $specifyModules = $this->option('module') ? explode(',', $this->option('module')) : []; |
58 | - $modules = Module::all(); | ||
59 | - print_r($modules);exit(); | ||
60 | - /** @var \Nwidart\Modules\Laravel\Module $module */ | ||
61 | - foreach ($modules as $module) { | ||
62 | - if ($module->getName() == 'Common') { | ||
63 | - continue; | ||
64 | - } | 58 | + $loader = require base_path('vendor').'/autoload.php'; |
59 | +// 获取注册的命名空间前缀并筛选出 Composer 包的命名空间 | ||
60 | + $prefixes = $loader->getPrefixesPsr4(); | ||
61 | + foreach ($prefixes as $key => $prefix) { | ||
65 | //如果有指定moudle,则只有指定的moudle会生成,否则会生成全部 | 62 | //如果有指定moudle,则只有指定的moudle会生成,否则会生成全部 |
66 | - if (count($specifyModules) > 0 && !in_array($module->getName(), $specifyModules)) { | 63 | + if (count($specifyModules) > 0 && !in_array($key, $specifyModules)) { |
67 | continue; | 64 | continue; |
68 | } | 65 | } |
69 | - | ||
70 | - $moduleName = $module->getName(); | ||
71 | - $modulePath = str_replace('_', '/', $moduleName); | 66 | + $moduleName = $key; |
67 | + $modulePath = str_replace('\\', '/', $moduleName); | ||
72 | 68 | ||
73 | //create module dir | 69 | //create module dir |
74 | $basePath = base_path('app/Clients/' . $modulePath); | 70 | $basePath = base_path('app/Clients/' . $modulePath); |
@@ -77,10 +73,9 @@ class SwrpcGenCom extends Command | @@ -77,10 +73,9 @@ class SwrpcGenCom extends Command | ||
77 | } | 73 | } |
78 | 74 | ||
79 | //target service namespace | 75 | //target service namespace |
80 | - $namespace = ltrim(str_replace([base_path(), '/'], ['', '\\'], $module->getPath()), '\\') . '\\Services'; | ||
81 | - | 76 | + $namespace = $key . 'Http\Service'; |
82 | //fetch file | 77 | //fetch file |
83 | - $servicePath = $module->getPath() . '/Services'; | 78 | + $servicePath = $prefix[0] . '/Http/Service'; |
84 | if (!is_dir($servicePath)) { | 79 | if (!is_dir($servicePath)) { |
85 | continue; | 80 | continue; |
86 | } | 81 | } |
@@ -111,7 +106,7 @@ class SwrpcGenCom extends Command | @@ -111,7 +106,7 @@ class SwrpcGenCom extends Command | ||
111 | $proxyPath = $basePath . '/' . $file; | 106 | $proxyPath = $basePath . '/' . $file; |
112 | ob_start(); | 107 | ob_start(); |
113 | ob_implicit_flush(false); | 108 | ob_implicit_flush(false); |
114 | - include(base_path('app/Clients/client.template.php')); | 109 | + include(__DIR__.'/client.template.php'); |
115 | $content = ob_get_clean(); | 110 | $content = ob_get_clean(); |
116 | if (!file_put_contents($proxyPath, $content)) { | 111 | if (!file_put_contents($proxyPath, $content)) { |
117 | $this->error($proxyPath . ' import failure.'); | 112 | $this->error($proxyPath . ' import failure.'); |
@@ -167,7 +162,7 @@ class SwrpcGenCom extends Command | @@ -167,7 +162,7 @@ class SwrpcGenCom extends Command | ||
167 | 162 | ||
168 | $serviceObj = $rc->newInstance(); | 163 | $serviceObj = $rc->newInstance(); |
169 | if (!($serviceObj instanceof LogicService)) { | 164 | if (!($serviceObj instanceof LogicService)) { |
170 | - $this->warn('没有继承\Swrpc\LogicService类,跳过'.get_class($serviceObj)); | 165 | + $this->warn('没有继承\AukeySwrpc\LogicService类,跳过'.get_class($serviceObj)); |
171 | return []; | 166 | return []; |
172 | } | 167 | } |
173 | 168 |
src/Commands/client.template.php
0 → 100644
1 | +<?php | ||
2 | +/** @var $class */ | ||
3 | +/** @var $funcs */ | ||
4 | +/** @var $serviceKey */ | ||
5 | +/** @var $modulePath */ | ||
6 | +$serviceKey = env('SWRPC_SERVER_NAME'); | ||
7 | +?> | ||
8 | +<?php echo "<?php \n\n"; ?> | ||
9 | +namespace App\Clients\<?=rtrim(str_replace('/','\\',$modulePath), '\\')?>; | ||
10 | + | ||
11 | + | ||
12 | +use AukeySwrpc\BaseService; | ||
13 | + | ||
14 | +/** | ||
15 | + * 不要直接修改这个类的代码,用命令行去执行生成 | ||
16 | + * php artisan swrpc:gen | ||
17 | + * | ||
18 | + * Class <?=$class;?> <?php echo "\n"?> | ||
19 | +<?php foreach ($funcs as $func) { ?> | ||
20 | + * @method <?= $func ?> | ||
21 | +<?php } ?> | ||
22 | + * | ||
23 | + * @package App\Clients | ||
24 | + * @author pengjch <?=date('Y-m-d H:i:s')?> | ||
25 | + */ | ||
26 | +class <?=$class;?> extends BaseService | ||
27 | +{ | ||
28 | + /** | ||
29 | + * @return <?=$class.PHP_EOL;?> | ||
30 | + * @author pengjch | ||
31 | + */ | ||
32 | + public static function factory(): <?=$class.PHP_EOL;?> | ||
33 | + { | ||
34 | + return new static(); | ||
35 | + } | ||
36 | + | ||
37 | + /** | ||
38 | + * @author pengjch | ||
39 | + */ | ||
40 | + public function init() | ||
41 | + { | ||
42 | + $this->setService('<?=$serviceKey?>'); | ||
43 | + } | ||
44 | +} |
-
请 注册 或 登录 后发表评论