simplette / console
Requires
- php: >=5.6
- nette/bootstrap: ~2.4
- nette/di: ~2.4
- symfony/console: ~2.8|~3.0
This package is auto-updated.
Last update: 2021-04-09 22:51:34 UTC
README
Symfony Console 可能是 PHP 语言中最常见的控制台组件。感谢这个库,您可以使用 composer 命令在 Nette 框架 中简单地使用它。
这个库受到了 Symfony Console 实现 Kbyby 和 Joseki 的启发。
需求
此库需要 PHP 5.6 或更高版本。Simplette Console 库是为 Nette 框架 2.4 及更高版本设计的。
安装
安装此库的最佳方式是使用 Composer
$ composer require simplette/console
文档
首先,注册扩展 Simplette\Console\DI\ConsoleExtension。有关配置的更多信息,请参阅类定义。这个库旨在尽可能简单。然而,将来可能会添加一些功能,所以 请关注。
extension: console: Simplette\Console\DI\ConsoleExtension
此控制台实现也支持 debugMode 和正确的设置。为了支持这一点,您需要在您的 app/bootstrap.php 中调用 Simplette\Console\DI\BootstrapHelper::setupMode。
在 Web 环境设置中使用 Callable。在控制台命令中,模式通过检查 --debug 参数来设置。为了兼容性,还定义了更多可以打开调试模式的参数。
<?php use Simplette\Console\DI\BootstrapHelper; require __DIR__ . '/../vendor/autoload.php'; $configurator = new Nette\Configurator; BootstrapHelper::setupMode($configurator, function () use ($configurator) { // $configurator->setDebugMode('23.75.345.200'); // enable for your remote IP }); $configurator->enableTracy(__DIR__ . '/../log');
不要忘记在 setupMode 之后调用 $configurator->enableTracy()。这将解决您与日志记录的所有问题。
控制台命令可以按照 文档 中所述定义。每个命令都必须在您的 di 服务中注册,并使用标签 console.command 进行标识。
services: - class: App\Commands\TestCommand tags: [console.command]
标签的名称可以在扩展中配置。您甚至可以定义自己的控制台应用程序
console: application: App\Console\MyAwesomeConsoleApplication tag: mycommand
最佳实践
在服务中定义命令可能会非常烦人。您可以使用 Nette Decorator 简化此步骤,有关更多信息,请阅读 这篇精彩的文章。为了简化命令定义,请使用此
decorator: Symfony\Component\Console\Command\Command: tags: [console.command] inject: yes services: - App\Commands\MyCommand
Simplette Console 还实现了 bin 命令用于 composer。因此,要运行您的控制台命令,您只需键入
$ composer exec console mycommad
贡献
这是一个开源的、社区驱动的项目。如果您想贡献力量,请遵循当前源代码中使用的代码格式,并提交一个 pull request。
将来将添加更高级的文档。但如果您查看我的源代码,您将了解您可以使用这个小型(但功能强大)的库做什么。