在Zend Framework 2中,將初始模塊橫幅添加到控制檯應用程序非常簡單。如何創建ZF3控制檯應用程序
我們所需要做的就是實施getConsoleBanner
和getConsoleUsage
方法並實施Zend\ModuleManager\Feature\ConsoleUsageProviderInterface
或ConsoleBannerProviderInterface
接口。
當通過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
它可能是在Zend中-MVC-控制檯中的錯誤:https://github.com/zendframework/zend-mvc-console/問題/ 12 – avy
@kachar:您是否按照@weierophinney的建議成功實施了zf-console?如果你這樣做,你會與我們分享? –