khalyomede/command-builder

使用流畅的API创建可执行字符串。

0.2.1 2022-01-20 20:18 UTC

This package is auto-updated.

Last update: 2024-09-21 02:24:47 UTC


README

一个PHP类,用于使用流畅API构建可执行文件。

摘要

关于

我需要一个流畅的方式来调用我的可执行文件。我没有找到其他提供此类接口的命令构建器,它们最近更新过或提供大量的测试覆盖率。

特性

  • 使用流畅API构建要执行的字符串
  • 基于类
  • 支持参数、长/短选项和标志
  • 保持元素顺序
  • 处理命令的执行

安装

使用Composer安装包

composer require khalyomede/command-builder

示例

1. 创建一个简单的命令

在这个例子中,我们将只传递一个命令名称,不传递参数/选项/标志。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

echo $command; // composer

2. 添加一个参数

在这个例子中,我们将向我们的命令添加一个参数。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require");

echo $command; // composer require

3. 添加一个标志

在这个例子中,我们将向命令添加一个“长”标志。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->longFlag("ignore-platform-reqs");

echo $command; // composer require --ignore-platform-reqs

这就是添加“短”标志的方法。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->flag("i");

echo $command; // composer require -i

4. 添加一个选项

您可以为您的命令添加选项。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->longOption("prefer-install", "source");

echo $command; // composer require --prefer-install=source

如果您的选项包含空格,它将自动使用双引号进行转义。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->longOption("prefer-install", "auto source");

echo $command; // composer require --prefer-install="auto source"

如果您的选项包含空格和双引号,它们也将被转义。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->longOption("prefer-install", 'auto "source"');

echo $command; // composer require --prefer-install="auto \"source\""

您还可以使用“短”选项。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("require")
  ->option("p", 'source');

echo $command; // composer require -p=source

5. 配置标准

您可以指定用于选项的标准。默认情况下,它设置为“GNU”。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer", "POSIX");

$command->argument("require")
  ->option("p", 'source');

echo $command; // composer require -p source

$command = new Command("composer")

$command->argument("require")
  ->option("p", 'source');

echo $command; // composer require -p=source

您也可以使用常量,如果您喜欢

use Khalyomede\CommandBuilder\Command;
use Khalyomede\CommandBuilder\Standard;

$command = new Command("composer", Standard::POSIX);

6. 获取参数数量

您可以知道添加到命令中的参数数量。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->argument("create-project")
  ->argument("laravel/laravel");

echo $command->argumentCount(); // 2

7. 获取标志数量

您可以知道添加到您的命令中的标志数量。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->flag("i")
  ->longFlag("prefer-dist");

echo $command->flagCount(); // 2

8. 获取选项数量

您可以知道添加到您的命令中的选项数量。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->option("a", "source")
  ->longFlag("apcu-autoloader-prefix", "app");

echo $command->optionCount(); // 2

9. 检查是否已添加标志

您可以知道是否已添加标志。

use Khalyomede\CommandBuilder\Command;

$command = new Command("composer");

$command->longFlag("dev");

var_dump( $command->hasFlag("d", "dev") ); // bool(true)
var_dump( $command->hasFlag("o", "optimize-autoloader") ); // bool(false)

10. 检查是否已添加选项

您可以知道是否已添加选项。

use Khalyomede\CommandBuilder\Command;
use Khalyomede\CommandBuilder\Style;

$command = new Command("composer");

$command->longOption("prefer-install", "source");

var_dump( $command->hasOption("p", "prefer-install") ); // bool(true)
var_dump( $command->hasOption("i", "ignore-platform-req") ); // bool(false)

兼容性表格

这是仅适用于此版本的兼容性。要检查与其他版本的此包的兼容性,请浏览您选择的版本。

测试

composer run test
composer run mutate
composer run analyse
composer run lint
composer run install-security-checker
composer run check-security
composer run check-updates