jawira/mini-getopt
Composer 安装命令:
composer require jawira/mini-getopt
包简介
Very simple wrapper for getopt() function
README 文档
README
Very simple wrapper for getopt() function.
Usage
This is only a wrapper, therefore the output from mini-getopt is going to be
the same as getopt() function.
-
First you have to instantiate
\Jawira\MiniGetopt\MiniGetopt. -
Then you have to configure options you want to use. To do so use the following methods:
MiniGetopt::addRequired.MiniGetopt::addOptional.MiniGetopt::addNoValue.
-
To retrieve values you have to call one of the following method:
MiniGetopt::getoptreturns the same asgetopt(). Optionally you can pass$optindparameter.MiniGetopt::getOptionto get only one value.MiniGetopt::docget documentation.
Basic usage
PHP code:
// resources/example.php // Preparing options $mg = new \Jawira\MiniGetopt\MiniGetopt(); $mg->addRequired('f', 'format'); // value is required $mg->addOptional('r', 'retry'); // value is optional $mg->addOptional('q', ''); // only short option $mg->addNoValue('v', 'verbose'); // no value $mg->addNoValue('', 'version'); // only long option // Calling getopt var_export($mg->getopt());
Executing code:
$ php resources/example.php array ( )
$ php resources/example.php -f=xml array ( 'f' => 'xml', )
$ php resources/example.php --format=xml -r -v array ( 'format' => 'xml', 'r' => false, 'v' => false, )
$ php resources/example.php -f=json -r=yes -v array ( 'f' => 'json', 'r' => 'yes', 'v' => false, )
$ php resources/example.php --retry -vvv array ( 'retry' => false, 'v' => array ( 0 => false, 1 => false, 2 => false, ), )
$ php resources/example.php --version=banana --invalid array ( 'version' => false, )
optind parameter
// Setup $mg = new \Jawira\MiniGetopt\MiniGetopt(); $mg->addRequired('f', 'format'); $mg->addNoValue('v', 'verbose'); // Calling getopt function with `optind` parameter $optind = null; $options = $mg->getopt($optind); echo "optind: $optind" . PHP_EOL;
$ php resources/example.php --format=pdf -vv optind: 3
Generate doc
$mg = new \Jawira\MiniGetopt\MiniGetopt(); $mg->addRequired('f', 'format', 'Format to export', 'png|gif|svg'); $mg->addOptional('r', 'retry', 'Retry on error', 'count'); $mg->addOptional('q', '', 'Quiet mode', 'yes|no'); $mg->addNoValue('v', 'verbose', 'Display verbose messages'); $mg->addNoValue('', 'version', 'Show version'); echo $mg->doc();
$ php resource/example.php OPTIONS -f, --format=<png|gif|svg> Format to export -r, --retry=[count] Retry on error -q=[yes|no] Quiet mode -v, --verbose Display verbose messages --version Show version
How to install
$ composer install jawira/mini-getopt
Contributing
If you liked this project, ⭐ star it on GitHub.
License
This library is licensed under the MIT license.
Packages from jawira
-
jawira/emoji-catalog
- Get access to +3000 emojis as class constants.
-
jawira/plantuml-encoding
- PlantUML encoding functions.
-
jawira/case-converter
- Convert strings between 13 naming conventions: Snake case, Camel case, Pascal case, Kebab case, Ada case, Train case, Cobol case, Macro case, Upper case, Lower case, Sentence case, Title case and Dot notation.
- more...
jawira/mini-getopt 适用场景与选型建议
jawira/mini-getopt 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 3.34k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2018 年 09 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cli」 「getopt」 「terminal」 「option」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jawira/mini-getopt 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jawira/mini-getopt 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jawira/mini-getopt 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Command-line framework for PHP
CommandLineLib provides a high-quality command line parser via a fluent interface
A fork of runcmf/runtracy
Finally a sane way to register available commands and arguments and match your command line in PHP.
PHP Option Parser
PHP Terminal emulator controller utilizing ANSI escape sequence coding.
统计信息
- 总下载量: 3.34k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 25
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-09-19