如何创建 ZF3 控制台应用程序
在 Zend Framework 2 中,将初始模块横幅添加到控制台应用程序非常简单。
我们所需要的只是实现 和 方法并实现 or 接口。getConsoleBanner
getConsoleUsage
Zend\ModuleManager\Feature\ConsoleUsageProviderInterface
ConsoleBannerProviderInterface
这足以在通过 CLI 启动时将这些消息转储到控制台中。public/index.php
在Zend Framework 3中,情况并不相同。
执行相同的设置不会提供相同的结果。实际上,在控制台中,我们看到骨架应用程序的默认html页面的方式与通过浏览器访问它的方式相同。
在我们安装自定义模块之前,正在查看该页面:以下是该模块的文档 https://zendframework.github.io/zend-mvc-console/intro/zend-mvc-console
即使按照建议安装模块(在模块定义中添加),控制台横幅也不会显示。我已经在方法中进行了var转储测试,并且能够查看数据,因此框架执行这些方法,但在控制台中没有显示任何结果。'Zend\Mvc\Console'
我已经使用控制台路由和控制器进行了测试。找到路由,执行控制器操作,但 cli 中不再显示任何内容。
我已经挖掘了框架的代码,似乎该类从未执行过。Zend\Mvc\Console\ResponseSender\ConsoleResponseSender
我是否必须注册一些策略才能在 CLI 中显示某些内容?view_manager
以下是 zf3 骨架应用程序顶部的源:https://gist.github.com/kachar/06f0c9096bcc1cc0b00f4612aed1b68b
运行应用:
$ php -v
PHP 7.0.6 (cli) (built: Apr 27 2016 14:00:40) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
$ php public/index.php
Application\Module::getConsoleBanner
Application\Module::getConsoleUsage
$ php public/index.php user
Application\Controller\IndexController::indexAction