In Zend Framework 2 ist es sehr einfach, das anfängliche Modulbanner zu den Konsolenanwendungen hinzuzufügen.So erstellen Sie die ZF3-Konsolenanwendung
Alles, was wir brauchen, ist, die getConsoleBanner
und getConsoleUsage
Methoden zu implementieren und den Zend\ModuleManager\Feature\ConsoleUsageProviderInterface
oder ConsoleBannerProviderInterface
Schnittstellen zu implementieren.
Dies ist gut genug, um diese Meldungen in der Konsole zu speichern, wenn public/index.php
über CLI gestartet wird.
In Zend Framework 3 ist es nicht das gleiche.
Das gleiche Setup führt nicht zum selben Ergebnis. In der Konsole sehen wir die Standard-HTML-Seite für die Skelett-App genauso wie wir sie über den Browser aufrufen.
Diese Seite gesehen wird, bevor wir installieren Sie das benutzerdefinierte Modul: nicht die Konsole Banner wie vorgeschlagen installiert (in Moduldefinitionen 'Zend\Mvc\Console'
hinzugefügt) sind, ist Hier sind die Dokumente für das zend-mvc-console
Modul https://zendframework.github.io/zend-mvc-console/intro/
Auch nach Modul gezeigt. Ich habe mit var dumping in den Methoden getestet und kann die Daten anzeigen, sodass das Framework diese Methoden ausführt, aber kein Ergebnis in der Konsole anzeigt.
Ich habe mit Konsolenrouten und Controllern getestet. Die Route wird gefunden, die Controller-Aktion wird ausgeführt, aber im CLI wird nichts mehr angezeigt.
Ich habe in den Code des Framework gegraben und es scheint, dass die Zend\Mvc\Console\ResponseSender\ConsoleResponseSender
Klasse nie ausgeführt wird.
Muss ich einige view_manager
Strategien registrieren, damit etwas im CLI angezeigt wird?
Hier sind die Quellen auf der ZF3 Skelett Anwendung: https://gist.github.com/kachar/06f0c9096bcc1cc0b00f4612aed1b68b
die App laufen:
$ 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
Es könnte ein Fehler in zend-mvc-Konsole sein: https://github.com/zendframework/zend-mvc-console/ issues/12 – avy
@kachar: Ist es dir gelungen, die von @weierophinney vorgeschlagene zf-console zu implementieren?Wenn ja, würdest du es mit uns teilen? –