Как создать консольное приложение ZF3

В Zend Framework 2 очень просто добавить начальный модуль баннера в консольные приложения.

Все, что нам нужно - реализовать методы getConsoleBanner и getConsoleUsage и реализовать интерфейсы Zend\ModuleManager\Feature\ConsoleUsageProviderInterface или ConsoleBannerProviderInterface.

Это достаточно хорошо, чтобы сбрасывать эти сообщения в консоли, когда public/index.php запускается через CLI.

В Zend Framework 3 это не то же самое.

Выполнение одной и той же настройки не дает того же результата. На самом деле в консоли мы видим страницу html по умолчанию для приложения скелета так же, как мы посещаем его через браузер.

Эта страница отображается перед установкой настраиваемого модуля: Вот документы для модуля zend-mvc-console https://zendframework.github.io/zend-mvc-console/intro/

Даже после установки модуля как предложено ('Zend\Mvc\Console' добавлено в определениях модулей) консольные баннеры не отображаются. Я тестировал с var dumping внутри методов, и я могу просматривать данные, поэтому среда выполняет эти методы, но не показывает результат в консоли.

Я тестировал консольные маршруты и контроллеры. Маршрут найден, выполняется действие контроллера, но ничего не отображается в кли.

Я выкопал код кода и кажется, что класс 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

В нашей собственной документации MVC ↔ Консольная интеграция устарела. Мы рекомендуем использовать zf-console или консоль symfony для консоли здания для вашего приложения.

Мы знаем о проблемах с zend-mvc-консолью, и вскоре мы выпустим выпуск исправлений, чтобы решить их, что позволит устранить ваши краткосрочные проблемы. Тем не менее, мы рекомендуем перейти на другое решение в долгосрочной перспективе.