rmlasseter/silex-cli

Silex 微框架的控制台提供者

dev-master 2014-01-31 03:07 UTC

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);