eth8505 / laminas-symfony-console
laminas 对 symfony/console 的集成
Requires
- php: ^7.3 | 8.0
- laminas/laminas-modulemanager: ^2.10
- laminas/laminas-mvc: ~3.0
- laminas/laminas-servicemanager: ~3.0
- laminas/laminas-stdlib: ~3.0
- symfony/console: ^4.4 | ^5.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-21 03:11:18 UTC
README
LaminasSymfonyConsole模块允许在Laminas中使用symfony console组件。
如何安装
通过composer安装eth8505/laminas-symfony-console
包。
$ composer require eth8505/laminas-symfony-console
在您的application.config.php
文件中加载模块,如下所示
<?php return [ 'modules' => [ 'LaminasSymfonyConsole', // ... ], ];
如何使用
您可以使用vendor/bin/console
工具运行您的命令。这个工具可能位于不同的目录,具体取决于您的composer bin-dir
配置。
根据您如何设置您的Laminas项目,您可能需要修改public/index.php
。例如,如果您使用了Laminas MVC Skeleton项目,这可能就是必要的。
首先,该文件必须返回此库工作的Application
实例。
可选地,如果public/index.php
没有通过PHP CLI调用,则可以仅调用Laminas\Mvc\Application
的run()
方法。这将避免在控制台杂乱地显示视图。
如何创建控制台命令?
1. 创建命令
根据symfony console文档创建命令。请注意,如果您使用的是完整的laminas框架,将无法使用所有symfony服务容器的逻辑。
2. 在服务管理器中注册
您可以通过您的module.config.php
中的配置将您的命令注册到服务管理器中
<?php return [ 'laminas_symfonyconsole_commands' => [ 'invokables' => [ MyCommand::class ] ] ];
或者使用ConsoleCommandProviderInterface
在模块类中注册它
<?php namespace MyModule; use LaminasSymfonyConsole\ConsoleCommandProviderInterface; class Module implements ConsoleCommandProviderInterface { /** * @inheritdoc */ public function getConsoleCommandConfig() { return [ 'invokables' => [ MyCommand::class ] ]; } }
3. 命令准备就绪
您的命令现在将显示在bin/console
实用程序中,并可以使用在命令的configure
方法中设置的任何内容调用。
感谢
感谢Rafi Adnan和他的RDN Console模块,本模块基于该模块松散构建。