khalyomede / command-builder
使用流畅的API创建可执行字符串。
0.2.1
2022-01-20 20:18 UTC
Requires
- php: >=7.4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: 3.5.0
- infection/infection: 0.26.2
- pestphp/pest: 1.21.1
- phpstan/phpstan: 1.4.2
- phpstan/phpstan-strict-rules: 1.1.0
- thibautselingue/local-php-security-checker-installer: 1.0.3
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. 创建一个简单的命令
- 2. 添加一个参数
- 3. 添加一个标志
- 4. 添加一个选项
- 5. 配置标准
- 6. 获取参数数量
- 7. 获取标志数量
- 8. 获取选项数量
- 9. 检查是否已添加标志
- 10. 检查是否已添加选项
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