eth8505/laminas-symfony-console

laminas 对 symfony/console 的集成

2.0.0 2021-02-20 19:03 UTC

This package is auto-updated.

Last update: 2024-09-21 03:11:18 UTC


README

LaminasSymfonyConsole模块允许在Laminas中使用symfony console组件。

CI Status Packagist Packagist Version PHP from Packagist

如何安装

通过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\Applicationrun()方法。这将避免在控制台杂乱地显示视图。

如何创建控制台命令?

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模块,本模块基于该模块松散构建。