© saicle/Shutterstock.com
PHP Magazin
Codegenerierung auf der Konsole mit dem ZF2 realisieren

Hidden Gems

Das Zend Framework 2 ist vor allem als Hilfsmittel für die Umsetzung von klassischen Webanwendungen nach dem MVC-Entwurfsmuster bekannt. Auch die sehr einfache Möglichkeit, eine Anwendung durch eine REST-Schnittstelle verfügbar zu machen, wird bereits in vielen Projekten genutzt. Dass das Zend Framework 2 jedoch auch eine solide Grundlage zum Entwickeln von Konsolenanwendungen bietet, ist den meisten Entwicklern eher unbekannt.

Ralf Eggert


In diesem Artikel erfahren Sie, wie Sie mit Zend\Con­sole Ihre modulare Anwendung auf die Konsole bringen und Zend\Text für die tabellarische Ausgabe Ihrer Daten einsetzen können. Zusätzlich lernen Sie das Projekt ZF\Console kennen und können erste Schritte bei der Codegenerierung von Entitätsklassen mit Zend\Code gehen.

Konsole? Kommandozeile? Oder wie? Je nach Umfeld und Betriebssystem sind Begriffe wie Konsole, Kommandozeile, Befehlszeile, CLI (Command Line Interface), Terminal oder Eingabeaufforderung häufig verwendet. Der Einfachheit halber wird in diesem Artikel der Begriff „Konsole“ als Synonym für die anderen hier genannten Begriffe verwendet.

ZF2-Beispielanwendung

Damit Sie die Beispiele selbst nachvollziehen können, steht eine Beispielanwendung auf GitHub für Sie bereit [1]. Darin wollen wir unsere Module für eine Konsolenanwendung implementieren, um den Umgang mit Zend\Console üben zu können. Sie können das Projekt wie dargestellt klonen (bitte ggf. die Verzeichnisse anpassen) und installieren. Dabei setzen wir auch noch die Schreibrechte des /data/-Verzeichnisses und wechseln Sie dann zum start-Branch:

$ cd /home/devhost$ git clone https://github.com/RalfEggert/phpmagazin.console$ cd phpmagazin.console$ php composer.phar selfupdate$ php composer.phar install$ sudo chmod 777 -R data/ $ git checkout start

Danach richten Sie einen Virtual Host für die Adresse php magazin.­console ein. Wenn Sie nun http://­phpmagazin.­console/ in Ihrem Browser aufrufen, sollte die Seite ungefähr wie in Abbildung 1 aussehen. Die Listings zu diesem Artikel finden Sie sowohl auf GitHub [2] als auch in diesem Repository im Verzeichnis /listings/. In der Anwendung finden Sie die beiden Module Application und PizzaData. Das Modul PizzaData dient dabei lediglich dazu, Daten für die anderen Module bereitzustellen. Diese Daten liegen in einer MySQL-Datenbank und werden auf der Startseite angezeigt.

Abb. 1: Die Startseite des Beispielprojekts

Um auf die MySQL zugreifen zu können, müssen Sie an dieser Stelle eine MySQL-Datenbank anlegen und dort den Dump aus der Datei /data/import/dump.mysql.­sql einspielen. Außerdem sollten Sie einen entsprechenden Benutzer anlegen, der lesend und schreibend auf Ihre MySQL-Datenbank zugreifen kann. Alternativ können Sie auch jede andere Datenbank verwenden, die vom Zend Framework 2 unterstützt wird [3]. Ihre Zugangsdaten legen Sie bitte in der Konfigurationsdatei /config/autoload/local.php im Projektverzeichnis ab.

Damit sind die Vorbereitungen ...

PHP Magazin
Codegenerierung auf der Konsole mit dem ZF2 realisieren

Hidden Gems

Das Zend Framework 2 ist vor allem als Hilfsmittel für die Umsetzung von klassischen Webanwendungen nach dem MVC-Entwurfsmuster bekannt. Auch die sehr einfache Möglichkeit, eine Anwendung durch eine REST-Schnittstelle verfügbar zu machen, wird bereits in vielen Projekten genutzt. Dass das Zend Framework 2 jedoch auch eine solide Grundlage zum Entwickeln von Konsolenanwendungen bietet, ist den meisten Entwicklern eher unbekannt.

Ralf Eggert


In diesem Artikel erfahren Sie, wie Sie mit Zend\Con­sole Ihre modulare Anwendung auf die Konsole bringen und Zend\Text für die tabellarische Ausgabe Ihrer Daten einsetzen können. Zusätzlich lernen Sie das Projekt ZF\Console kennen und können erste Schritte bei der Codegenerierung von Entitätsklassen mit Zend\Code gehen.

Konsole? Kommandozeile? Oder wie? Je nach Umfeld und Betriebssystem sind Begriffe wie Konsole, Kommandozeile, Befehlszeile, CLI (Command Line Interface), Terminal oder Eingabeaufforderung häufig verwendet. Der Einfachheit halber wird in diesem Artikel der Begriff „Konsole“ als Synonym für die anderen hier genannten Begriffe verwendet.

ZF2-Beispielanwendung

Damit Sie die Beispiele selbst nachvollziehen können, steht eine Beispielanwendung auf GitHub für Sie bereit [1]. Darin wollen wir unsere Module für eine Konsolenanwendung implementieren, um den Umgang mit Zend\Console üben zu können. Sie können das Projekt wie dargestellt klonen (bitte ggf. die Verzeichnisse anpassen) und installieren. Dabei setzen wir auch noch die Schreibrechte des /data/-Verzeichnisses und wechseln Sie dann zum start-Branch:

$ cd /home/devhost$ git clone https://github.com/RalfEggert/phpmagazin.console$ cd phpmagazin.console$ php composer.phar selfupdate$ php composer.phar install$ sudo chmod 777 -R data/ $ git checkout start

Danach richten Sie einen Virtual Host für die Adresse php magazin.­console ein. Wenn Sie nun http://­phpmagazin.­console/ in Ihrem Browser aufrufen, sollte die Seite ungefähr wie in Abbildung 1 aussehen. Die Listings zu diesem Artikel finden Sie sowohl auf GitHub [2] als auch in diesem Repository im Verzeichnis /listings/. In der Anwendung finden Sie die beiden Module Application und PizzaData. Das Modul PizzaData dient dabei lediglich dazu, Daten für die anderen Module bereitzustellen. Diese Daten liegen in einer MySQL-Datenbank und werden auf der Startseite angezeigt.

Abb. 1: Die Startseite des Beispielprojekts

Um auf die MySQL zugreifen zu können, müssen Sie an dieser Stelle eine MySQL-Datenbank anlegen und dort den Dump aus der Datei /data/import/dump.mysql.­sql einspielen. Außerdem sollten Sie einen entsprechenden Benutzer anlegen, der lesend und schreibend auf Ihre MySQL-Datenbank zugreifen kann. Alternativ können Sie auch jede andere Datenbank verwenden, die vom Zend Framework 2 unterstützt wird [3]. Ihre Zugangsdaten legen Sie bitte in der Konfigurationsdatei /config/autoload/local.php im Projektverzeichnis ab.

Damit sind die Vorbereitungen ...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang