Hallo zusammen,
ich würde gerne eine PHP-Applikation entwickeln, die mit der JavaScript-Bibliothek Emberjs zusammenarbeitet. Das ganze soll als TDD-Projekt erfolgen.
Vorbemerkungen:
Emberjs nutzt als Template-Engine Handlebars, welches 2 Möglichkeiten bietet, entsprechende Templates einzubinden:
1.) html-Version: Die Templates werden über das Script-Tag
einfach in den HTML-Code eingebunden. Für größere Projekte eignet sich das natürlich nicht
2.) js-Version: Die Templates werden über eine Engine (Konsolenaufruf oder über grunt) "vorkompiliert" und einfach als JavaScript-Datei eingebunden (z.B. templates.js)
Für Nodejs gibt es entsprechende Tools, um Templates zur Laufzeit zu kompilieren (also beim Page-Refresh) und Unit-Tests sowie Integration-Tests automatisiert auszuführen. Leider ist Nodejs nicht richtig "PHP-kompatibel", abgesehen davon würde ich die Anwendung gerne auf einem Webspace deployen, der kein Nodejs unterstützt.
Was ich schon versucht habe:
Nodejs mit PHP Unterstützung ausstatten: Hat bis zu einem gewissen grad funktioniert, aber es kommt hier zu komischen Seiteneffekten (Seiten nicht aufrufbar, urlrewrite funktioniert nicht richtig, mit anderen Worten: Untauglich)
Zend-Server und Nodejs gleichzeitig laufen lassen: Funktioniert grundsätzlich, allerdings bekomme ich über die Same-Origin-Policy Probleme beim Zugriff auf den RESTful-Service.
Meine aktuelle Lösung:
Ich habe mir in PHP einen hbs-Loader geschrieben, der, wenn ein "development"-Flag gesetzt ist, die hbs-Dateien lädt und ins HTML reinschreibt (also die nicht kompilierte Variante des Template-Loadings). Beim Deployment generiere ich dann die templates.js-Dateien und lasse das HTML weg. Funktioniert ganz brauchbar, aber es erscheint mir sehr unsauber.
Zur Fragestellung:
Hat jemand zufällig fundierten Lesestoff für eine elegantere Lösung a la "yeoman" in Kombination mit PHP. Vorab: Ich habe lange gegoogled und viel gelesen, also die ersten 3 Links in Google zu posten, wird mir sicher nicht weiter helfen. Ich bin aber offen für Vorschläge, falls jemand schon Erfahrung bei größeren Projekten mit PHP und Emberjs hat. Insbesondere geht es mir um folgende Themen:
- Laufzeitkompilierung von Emberjs-Templates in Kombination mit PHP
- Ausführung von Emberjs-Unit-Tests in einer Entwicklungsumgebung (PHPStorm, Eclipse, etc.)
- Projektstruktur und Aufbau
Bin dankbar für Vorschläge
ich würde gerne eine PHP-Applikation entwickeln, die mit der JavaScript-Bibliothek Emberjs zusammenarbeitet. Das ganze soll als TDD-Projekt erfolgen.
Vorbemerkungen:
Emberjs nutzt als Template-Engine Handlebars, welches 2 Möglichkeiten bietet, entsprechende Templates einzubinden:
1.) html-Version: Die Templates werden über das Script-Tag
Code:
<script type="text/x-handlebars" data-template-name="template-name"> mein template </script>
2.) js-Version: Die Templates werden über eine Engine (Konsolenaufruf oder über grunt) "vorkompiliert" und einfach als JavaScript-Datei eingebunden (z.B. templates.js)
Für Nodejs gibt es entsprechende Tools, um Templates zur Laufzeit zu kompilieren (also beim Page-Refresh) und Unit-Tests sowie Integration-Tests automatisiert auszuführen. Leider ist Nodejs nicht richtig "PHP-kompatibel", abgesehen davon würde ich die Anwendung gerne auf einem Webspace deployen, der kein Nodejs unterstützt.
Was ich schon versucht habe:
Nodejs mit PHP Unterstützung ausstatten: Hat bis zu einem gewissen grad funktioniert, aber es kommt hier zu komischen Seiteneffekten (Seiten nicht aufrufbar, urlrewrite funktioniert nicht richtig, mit anderen Worten: Untauglich)
Zend-Server und Nodejs gleichzeitig laufen lassen: Funktioniert grundsätzlich, allerdings bekomme ich über die Same-Origin-Policy Probleme beim Zugriff auf den RESTful-Service.
Meine aktuelle Lösung:
Ich habe mir in PHP einen hbs-Loader geschrieben, der, wenn ein "development"-Flag gesetzt ist, die hbs-Dateien lädt und ins HTML reinschreibt (also die nicht kompilierte Variante des Template-Loadings). Beim Deployment generiere ich dann die templates.js-Dateien und lasse das HTML weg. Funktioniert ganz brauchbar, aber es erscheint mir sehr unsauber.
Zur Fragestellung:
Hat jemand zufällig fundierten Lesestoff für eine elegantere Lösung a la "yeoman" in Kombination mit PHP. Vorab: Ich habe lange gegoogled und viel gelesen, also die ersten 3 Links in Google zu posten, wird mir sicher nicht weiter helfen. Ich bin aber offen für Vorschläge, falls jemand schon Erfahrung bei größeren Projekten mit PHP und Emberjs hat. Insbesondere geht es mir um folgende Themen:
- Laufzeitkompilierung von Emberjs-Templates in Kombination mit PHP
- Ausführung von Emberjs-Unit-Tests in einer Entwicklungsumgebung (PHPStorm, Eclipse, etc.)
- Projektstruktur und Aufbau
Bin dankbar für Vorschläge
Kommentar