-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何动态提取参数? #27
Comments
关于控制台命令,可以再看下文档,还有我新增了一些使用说明: https://github.com/inhere/php-console/wiki/about-console-command
|
console比较符合需要,有使用到Controllers Commands的架构
其他都比较好,需求是用想省略参数,--name是固定位置(都在app.php后面一位),且是必要参数。
可用其他方案实现需求,但会出现 另外才发现,想用到的好几个库都是你的,slog、config、stdlib、console... |
命令行应用应当遵循通用的命令规范,方便使用 最后的参数是可以省略的,console 里可以按位置给参数命名,可以设置非必须,用的时候使用名字获取就行
/**
* @param FlagsParser $fs
*
* @return void
*/
protected function configFlags(FlagsParser $fs): void
{
$fs->addOptByRule('search, s', 'string;input keywords for search');
// 绑定参数 非必须的 可以不传,获取到就是空string
$fs->addArg('keywords', 'the keywords for search or show docs', 'string');
}
protected function execute(Input $input, Output $output)
{
$keywords = $this->flags->getOpt('search');
$name = $this->flags->getArg('keywords');
// 也可以按位置取
// $name = $this->flags->getFirstArg();
} 哈哈 对的。我建了好几个组织,分别放不同语言、类型的库和包 |
命令行“遵循通用的命令规范”看起来是后面支持的吗?从低版本升级到现在的版本“4.1.6”,发现如果 ARGUMENTS 在 --OPTIONS 前面,无法获取到 --OPTIONS 的值 |
按规范 ARGS 只能在 OPTIONS 后面,遇到 args 就会停止解析。 |
自从升级该依赖到最新版本后,给我的同事带来了不少的困恼。以前可选和参数的顺序可以互换,升级之后,顺序必须遵循:“可选”后面跟随“参数”。 终于在 GUN 找到了官方解释 Argument-Syntax。
|
:) 之前没按严格规范解析,用着是灵活简单一些。 但遇到一些特殊场景不能处理,可能会导致解析出错误的结果。 |
WIKI没看到相应的文档
The text was updated successfully, but these errors were encountered: