adrianfalleiro / slim-cli-runner
为Slim PHP运行命令行任务
3.2.0
2023-03-11 16:27 UTC
Requires
- php: >=7.1
- php-di/php-di: ^6.0||^7.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
- slim/psr7: ^1.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 01:35:36 UTC
README
创建并运行Slim PHP微框架的命令行任务
安装
安装
composer require adrianfalleiro/slim-cli-runner ^3.1
为了支持Slim 3,请安装2.6或更低版本
注册中间件
在middleware.php
中注册中间件
$app->add(new adrianfalleiro\SlimCliRunner\CliRunner::class);
定义、注册并运行您的任务
任务定义
任务是扩展CliAction
的类,并且有一个公共的command()
方法。
您可以通过类构造函数注入依赖。
use Psr\Http\Message\ResponseInterface as Response; use adrianfalleiro\SlimCliRunner\CliAction; use Psr\Log\LoggerInterface; class ExampleCliAction extends CliAction { public function __construct(LoggerInterface $logger) { $this->logger = $logger; } protected function action(): Response { $arg0 = $this->resolveArg(0); $this->logToConsole("arg 0 is {$arg0}"); return $this->respond(); } }
任务注册
在您的settings.php
定义文件中添加一个新的键,名为commands
,并列出您的任务。为了定义一个默认任务(在未提供命令名时使用),添加一个新的任务,其键为__default
return function (ContainerBuilder $containerBuilder) { // Global Settings Object $containerBuilder->addDefinitions([ 'settings' => [ ... ], 'commands' => [ '__default' => \Namespace\To\Task::class 'SampleTask' => \Namespace\To\Task::class ] ]); };
运行任务
有几种方式可以做到这一点
直接通过命令行
php public/index.php SampleTask arg1 arg2 arg3
通过composer
composer.json
{ /*...*/ "config": { "process-timeout" : 0 }, "scripts": { /*...*/ "cli": "php public/index.php" } }
命令
composer cli SampleTask argument1 argument2 argument3
示例
一个示例项目可以在examples/
文件夹中找到