Symfony Webserver-Bundle für Projekte ohne Symfony Framework

PHP bietet schon seit geraumer Zeit einen nativen Webserver an. Mit dessen Hilfe kann der Entwickler PHP-Anwendungen ohne einen lokal installierten Apache oder Nginx testen. Um die Handhabung zu erleichtern, bietet Symfony ein Bundle an. Dieses Bundle nutze ich gern, es hat allerdings einen Fehler: Es ist ein Bundle – und läuft am Besten, wenn es in einer Symfony-Anwendung integriert ist. Aus diesem Grund habe ich eine Library geschrieben, mit der das Bundle als Kommandozeilenprogramm in jede PHP-Anwendung integriert werden kann.

Die Idee

Wenn ich eine Programmieraufgabe habe, überlege ich mir, welche Komponenten zur Lösung nützlich sind. Nicht immer handelt es sich dabei um eine Symfony-Anwendung, dafür zum überwiegenden Teil um eine Web-Anwendung. Um nun das Symfony-Webserver-Bundle für jede PHP-Webanwendung nutzen zu können, brauchte ich nur ein Kommandozeilen-Programm, welches die Commands aus dem Bundle aufruft.

Die Umsetzung

Die Anwendung war schnell geschrieben. Im Prinzip handelt es sich im eine Console-Application, die die Webserver-Commands lädt. Die Library ansich hat nur die Abhängigkeit zum Webserver-Bundle. Bei der Installation mit

composer.phar require --dev fadoe/standalone-webserver

werden alle Abhängigkeiten installiert. Anschließend kann der Webserver wie im entsprechenden Blogbeitrag auf symfony.org beschrieben genutzt werden. Anstatt bin/console wird vendor/bin/webserver aufgerufen. Beispielsweise wird der Webserver so gestartet:

vendor/bin/webserver server:start

Die Webserver-Dateien werden standardmäßig im Verzeichnis public gesucht und kann mit –docroot geändert werden

Ich habe vor, diese Library in den nächsten Wochen weiter zu verbessern. Den aktuellen Stand könnt ihr bei GIT finden.