adrianfalleiro/slim-cli-runner

为Slim PHP运行命令行任务

3.2.0 2023-03-11 16:27 UTC

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/文件夹中找到