背景
- 因大量的kernel立commands注册和调度配置信息,不同时段的多人员开发,造成git冲突
- 注册和调度信息过多,造成维护困难
安装
composer require qklin/laravel-kernel-plus
config/app.php
'providers' => [
...
Qklin\Kernel\Plus\KernelPlusProvider::class,
]
说明
# 会加载注册所有的comand命令脚本,并自动加入schedule队列, 无需手动个添加
php artisan schedule:run
# 自动注册command,并执行
php artisan c:cmd:core:test
注解说明
command::handle()
// * @command true //注册command
// * @commandParams param1=foo&--option=1 //本参数可省略
// * @schedule true //加入schedule
// * @runTime everyMinute //无参数的所有方法都支持
// * @runTime cron|* * * * * // 目前只支持cron带参数,方法和参数[|]分隔
// * @withoutOverlapping true
// * @runInBackground true
// * @appendOutputTo test/log //记录日志,位置:storage目录
// * @deprecated
env
默认的env配置
KERNEL_PLUS_ORIGIN_PREFIX=c
KERNEL_PLUS_MODULE_PREFIX=cm
KERNEL_PLUS_MODULE_DIR=Biz
KERNEL_PLUS_COMMANDS_DIR=cmd
KERNEL_DOCMENT_CMD=command
KERNEL_DOCMENT_CMD_PARAM=commandParams
KERNEL_DOCMENT_SCHEDULE=schedule
KERNEL_DOCMENT_RUN_TIME=runTime
KERNEL_DOCMENT_RUN)BACKGROUND=runInBackground
KERNEL_DOCMENT_LOG=appendOutputTo
KERNEL_DOCMENT_OVER_LAPPING=withoutOverlapping
KERNEL_DOCMENT_DEPRACATED=deprecated
demo
<?php
namespace App\Console\Commands\Core;
use App\Console\BaseCommand;
class Test extends BaseCommand
{
// 依赖关系
// 自动解决依赖,适用于单脚本依赖,不适用http
const DEPENDS = [
Testdepend::class
];
// 脚本命令注册名
const COMMAND_SIGN = 'c:cmd:core:test';
protected $signature = self::COMMAND_SIGN . ' {param1?}';
protected $description = '自动注入脚本测试';
/**
* @command true
* @schedule true
* @runTime everyMinute
* @runTime cron|* 1 * * *
* @withoutOverlapping true
* @runInBackground true
* @appendOutputTo logs/c_core_test
*/
public function handle()
{
$this->info("test finish");
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。