eth8505/zf-symfony-console

此包已被废弃且不再维护。作者建议使用 eth8505/laminas-symfony-console 包。

symfony/console模块,用于zendframework3+

1.1.0 2018-02-13 19:05 UTC

This package is auto-updated.

Last update: 2020-09-30 20:31:22 UTC


README

!!!! 该包已不再维护,请使用 eth8505/laminas-symfony-console 替代 !!!!

Eth8585\ZfSymfonyConsole - Zend Framework 3 Symfony Console Module

Eth8585\ZfSymfonyConsole 模块允许在 Zend Framework 3 中使用 symfony console 组件。

如何安装

使用 composer 安装 eth8505/zf-symfony-console 包。

$ composer require eth8505/zf-symfony-console

在您的 application.config.php 文件中加载该模块,如下所示

<?php

return [
	'modules' => [
		'Eth8505\ZfSymfonyConsole\\',
		// ...
	],
];

如何使用

您可以使用 vendor/bin/console 工具运行您的命令。该工具可能位于不同的目录,具体取决于您的 composer bin-dir 配置。

根据您如何设置您的 Zend Framework 3 项目,您可能需要修改 public/index.php。例如,如果您使用了 Zend MVC 框架项目,则这是必要的。

首先,该文件必须返回该库可以工作的 Application 实例。

可选地,如果您未通过 PHP CLI 调用 public/index.php,则可以仅调用 Zend\Mvc\Applicationrun() 方法。这将避免在控制台中出现视图。

如何创建控制台命令?

1. 创建命令

按照 symfony console 文档 中所述创建命令。请注意,如果您使用的是完整的 zend-framework,则无法使用所有 symfony 服务容器逻辑。

2. 在服务管理器中注册

您可以通过配置文件中的 module.config.php 将您的命令注册到服务管理器中

<?php

return [
    'zfsymfonyconsole_commands' => [
        'invokables' => [
            MyCommand::class
        ]
    ]
];

或者使用 ConsoleCommandProviderInterface 在模块类中注册它

<?php

namespace MyModule;

use Eth8505\ZfSymfonyConsole\ConsoleCommandProviderInterface;

class Module implements ConsoleCommandProviderInterface {
    
    /**
     * @inheritdoc 
     */
    public function getConsoleCommandConfig() {

        return [
            'invokables' => [
                MyCommand::class
            ]
        ];
        
    }
    
}

3. 您的命令已准备好使用

您的命令现在将在使用 bin/console 工具时显示,并且可以使用在命令的 configure 方法中设置的任何内容来调用。

感谢

感谢 Rafi Adnan 和他的 RDN Console 模块,本模块基于此模块。