joseki / console
简单地将 Symfony Console 集成到 Nette 框架中
v0.2.2
2015-12-17 07:34 UTC
Requires
- php: >= 5.4.0
- nette/di: ~2.3
Requires (Dev)
- nette/bootstrap: ~2.3
- nette/tester: ~1.0
- symfony/console: ~2.3
- tracy/tracy: ~2.3
README
需求
Joseki/Console 需要 PHP 5.4 或更高版本。
安装
使用 Composer 安装 Joseki/Console 是最佳方式
$ composer require joseki/console
配置
- 创建文件,例如
app/console
,并添加以下内容
#!/usr/bin/env php <?php /** @var Nette\DI\Container $container */ $container = require __DIR__ . '/bootstrap.php'; $application = $container->getService('Console.cli'); $application->run();
- 在您的
config.neon
中注册编译器扩展
extensions: Console: Joseki\Console\DI\ConsoleExtension
- 完成
使用方法
您可以通过在 config.neon
中将控制台命令添加为服务,并使用 joseki.console.command
标签
services: - class: Your\Own\Command tags: ['joseki.console.command']
或者直接在控制台编译器扩展下注册它
Console: commands: - Your\Own\Command
运行控制台命令
app/console yourCommandName
命令太多?命令名太长(包括命名空间)?
将命令根据它们的命名空间分成单独的控制台脚本。将您的cron脚本与数据库生成器、迁移或其他命令组分开。只需注册控制台别名和您命令组的命名空间前缀,如下所示
Console: console: cron: 'myapp:crons' # accepts only commands from 'myapp:crons' namespace, eg. 'myapp:crons:emails'
然后创建一个新的控制台文件 bin/cron
#!/usr/bin/env php <?php /** @var Nette\DI\Container $container */ $container = require __DIR__ . '/bootstrap.php'; $application = $container->getService('Console.console.cron'); $application->run();
并且仅使用后缀名运行您的命令。与旧方法比较
app/console myapp:crons:emails
与新建方法
app/cron emails