codito / silex-console-provider
此包已被弃用且不再维护。未建议替代包。
Silex 的 CLI 应用程序服务提供商
v2.0.1
2016-12-22 08:36 UTC
Requires
- php: >=5.4
- codito/silex-console-descriptor: ^0.1.0
- symfony/console: ^2.7
- symfony/filesystem: ^2.7
Requires (Dev)
- silex/silex: ~2.0
README
提供基于 Symfony\Component\Console\Application 的 Silex 控制台应用程序。
要求
- PHP >= 5.4,因为使用了简短数组语法。
安装
将条目添加到 composer.json
"require": { "codito/silex-console-provider": "~0.1" }
或者在项目目录中运行 composer require codito/silex-console-provider ~0.1。
配置
在你的 Silex 启动文件中需要注册服务提供商
<?php use Codito\Silex\Provider\ConsoleServiceProvider; $app->register(new ConsoleServiceProvider(), array( 'console.name' => 'Silex CLI Application', 'console.version' => '1.0', )); ?>
然后在你的控制台脚本中可以注册预定义的有用命令
<?php /* @var $console \Codito\Silex\Console\Application */ $console = $app['console']; $console->add(new \Codito\Silex\Console\Command\ClearCacheCommand()); $console->add(new \Codito\Silex\Console\Command\RouterDebugCommand()); ?>
有关此控制台的基础 Symfony 控制台的信息,请参阅 这里。
使用方法
假设你有一个 bin 目录,其中包含 console 可执行文件。调用 bin/console 将显示可用命令列表。然后你可以调用它们中的任何一个,例如
$ bin/console your:command:name
为了使用 cache:clear 命令,必须在应用程序中定义 cache_dir,例如
$app['cache_dir'] = __DIR__ . '/../var/cache';
编写命令
你的命令应扩展 Codito\Silex\Console\Command\AbstractCommand,这是基础(抽象)类,它包含一个方便的方法 getSilexApplication(),该方法返回注册了控制台服务的 Silex 应用程序。
致谢
- Silex 控制台应用程序服务提供商受到了
knplabs/console-service-provider的启发。 router:debug命令基于在 Symfony FrameworkBundle 中可用的命令,并仅适用于 Silex 进行了适配。