rmlasseter / silex-cli
Silex 微框架的控制台提供者
dev-master
2014-01-31 03:07 UTC
Requires
- silex/silex: ~1.0
- symfony/console: ~2.0
This package is not auto-updated.
Last update: 2024-09-28 15:00:29 UTC
README
服务
控制台
SilexCLI\Console 的一个实例(它扩展了 Symfony\Component\Console\Application)。
console.input
Symfony\Component\Console\Input\ArgvInput 的一个实例,可被命令回调访问。
console.output
Symfony\Component\Console\Output\ConsoleOutput 的一个实例,可被命令回调访问。
console.status
包含上次控制台执行的退出代码。
注册
use SilexCLI\Provider\ConsoleServiceProvider; $app->register(new ConsoleServiceProvider());
用法
可以通过控制台的路由方法注册命令。路由模式用于识别参数,依赖注入用于识别参数默认值和选项。
如果路由模式中存在回调参数,则它被定义为参数。不在路由模式中的参数
命令参数
如果路由模式中存在回调参数,则它被定义为参数。如果它有一个默认值,则它不会被控制台要求。
$app['console']->match('example {arg1}', function($arg1) use ($app) { ... });
命令选项
不在路由模式中的回调参数将被添加到命令定义中作为选项。所有选项都必须有一个默认值。
$app['console']->match('example', function($opt1 = 'default') use ($app) { ... });
如果选项默认值是布尔值,它将被视为一个标志。
$app['console']->match('example', function($flag1 = false) use ($app) { ... });
数组输入
参数和选项也可以接受数组值(尽管最后一个参数可能是一个数组)。
$app['console']->match('example {array-arg}', function(array $array_arg, array $array_opt = array()) use ($app) { ... });
特质
SilexCLI\Application\ConsoleTrait 添加以下快捷方式
command
向控制台添加一个新的命令并返回它。
$app->command($pattern, $callback);