2016-07-28 62 views
15

在Zend Framework 2中,将初始模块横幅添加到控制台应用程序非常简单。如何创建ZF3控制台应用程序

我们所需要做的就是实施getConsoleBannergetConsoleUsage方法并实施Zend\ModuleManager\Feature\ConsoleUsageProviderInterfaceConsoleBannerProviderInterface接口。

当通过CLI启动public/index.php时,这足以将这些消息转储到控制台中。

在Zend Framework 3中它是不一样的。

做同样的设置不提供相同的结果。实际上,在控制台中,我们可以看到框架应用的默认html页面,就像我们通过浏览器访问它一样。

该页面是被视为我们安装自定义模块: 这里是为zend-mvc-console模块的文档 https://zendframework.github.io/zend-mvc-console/intro/

的建议(添加模块定义'Zend\Mvc\Console')控制台横幅都没有安装模块,即使在所示。我已经在方法内部测试了var转储,并且能够查看数据,所以框架执行这些方法,但在控制台中没有显示任何结果。

我已经测试过控制台路由和控制器。找到路由后,控制器会执行操作,但是cli中再没有显示任何内容。

我已经挖掘了框架的代码,看起来Zend\Mvc\Console\ResponseSender\ConsoleResponseSender类永远不会执行。

我需要注册一些view_manager策略才能在CLI中显示某些内容吗?

下面是对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 
+1

它可能是在Zend中-MVC-控制台中的错误:https://github.com/zendframework/zend-mvc-console/问题/ 12 – avy

+0

@kachar:您是否按照@weierophinney的建议成功实施了zf-console?如果你这样做,你会与我们分享? –

回答

相关问题