isaeken / strargs
高级 CLI 命令解析器
2.4.0
2021-07-31 19:21 UTC
Requires
- php: ^8.0
- colinodell/json5: ^2.2
- illuminate/support: ^8.47
- symfony/var-dumper: ^5.3
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-29 06:35:42 UTC
README
高级 CLI 命令解析器
<?php $strargs = new \IsaEken\Strargs\Strargs('command "my name is" "isa eken" --details="{\"age\": 19, \"gender\": \"Male\"}" --friends[]=\"Nur\" -vvv'); $strargs->getArgument(0); // "my name is" $strargs->getArgument(1); // "isa eken" $strargs->getOption('details'); // (object) ["age" => 19, "gender" => "Male"] $strargs->getOption('friends'); // ['Nur'] $strargs->getVerbose(); // "debug"
安装
您可以使用 composer 进行安装。
composer require isaeken/strargs
用法
使用 PHP 创建命令
$strargs = new \IsaEken\Strargs\Strargs; $strargs->setCommand('/usr/bin/php'); $strargs->setArgument(0, '/var/www/html'); $strargs->setOption('action', 'serve'); $strargs->setOption('post', $_POST); $strargs->addFlag('local'); $strargs->setVerbose(\IsaEken\Strargs\Enums\VerboseLevel::VERY_VERBOSE); $strargs->encode(); // /usr/bin/php "/var/www/html" --action="serve" --local -vv
从字符串解析命令
$strargs = new \IsaEken\Strargs\Strargs('command arg1 arg2 --json1="{\"key\":\"value\"}" --json2="[\"asd\"]" --arr1[]="item1" --arr1[]="item2" --arr1[]=10 --arr2[]="item" --opt=1 --opt2="value" -a -b -c --ab --tr --try'); // Call this method first. $strargs->decode(); $strargs->getArgument(0); // arg1 $strargs->getArgument(1); // arg2 $strargs->getOption('json1'); // (object) ['key' => 'value'] $strargs->getOption('arr1'); // ['item1', 'item2', 10] $strargs->getVerbose(); // normal $strargs->hasFlag('try'); // true $strargs->hasFlag('c'); // true $strargs->hasFlag('d'); // false
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。