elfsundae/console

基于 Laravel Console 的 CLI 库,用于创建 PHP 控制台应用程序。

1.0.2 2017-09-20 14:07 UTC

This package is auto-updated.

Last update: 2024-08-29 04:43:01 UTC


README

Latest Version on Packagist Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads

基于 Laravel Console 的 CLI 库,用于创建 PHP 控制台应用程序。

安装

$ composer require elfsundae/console

使用

首先,创建一个 PHP 脚本并使其可执行

#!/usr/bin/env php
<?php

require __DIR__.'/vendor/autoload.php';

$app = new ElfSundae\Console\Application;

// ... register commands

$app->run();

然后,您可以使用 addcommand 方法注册命令。

add 方法接受一个 Illuminate\Console\Command 实例或一个 Symfony\Component\Console\Command\Command 实例。可以使用 command 方法注册基于闭包的命令,它接受三个参数:命令签名、接收命令参数和选项的闭包,以及命令的可选描述。

class Example extends Illuminate\Console\Command
{
    protected $signature = 'example
        {--foo=bar : The "foo" option description}';

    protected $description = 'Example command description';

    public function handle()
    {
        $this->comment($this->option('foo'));
    }
}

$app->add(new Example);

$app->command('title {username}', function ($username) {
    $this->comment(title_case($username));
}, 'The `title` command description');

要构建单个命令应用程序,可以将 true 传递给 setDefaultCommand 方法的第二个参数,或者直接调用 runAsSingle 方法

(new ElfSundae\Console\Application)
    ->add($command = new Example)
    ->getApplication()
    ->setDefaultCommand($command->getName(), true)
    ->run();
(new ElfSundae\Console\Application)
    ->add(new Example)
    ->getApplication()
    ->runAsSingle();

文档

测试

$ composer test

许可证

此软件包是开源软件,许可协议为 MIT 许可证