Notizen zu Enlight Framework

Yet another ecommerce PHP Framework, aber warum auch nicht? Enlight (https://github.com/ShopwareAG/Enlight)ist das hauseigene PHP Framework der Shopware AG. Die Shopsoftware Shopware basiert auf Enlight. Das Framework wurde jetzt nochmal als eigene Software herausgebracht. Einen ähnlichen Ansatz verfolgt Typo3 mit Flow. Nun gut, ich bin Webentwickler und kein reiner PHP-Entwickler und aus dieser Perspektive bewerte ich auch das Framework.

Was mir an Enlight auffällt, sind die fehlenden Models. Generell stellt sich bei Frameworks die Frage, wer diese überhaupt nutzt. Fragen auf PHP-Usertreffen sind „Wer von Euch hat schon mal eine eigene Template-Engine geschrieben?“ (viele Hände gehen hoch) und „Wer von Euch hat schonmal ein eigenes Framework geschrieben?“ (sehr viele Hände hoch). Für Template-Coder mit Smarty-Hintergrund wäre Enlight ein Traum – doch fehlt hier der Model-Part. Und ob jemand mit Template-Schwerpunkt die Muße hat, Daten Models zusammenzubauen, blebt die offene Frage. Der Einsatz von Enlight macht nur dann Sinn, wenn ich den weg im View den Weg der Shopware AG mitgehen will – oder ich entscheide mich vermutlich gleich für ZF2 (bei Enlight kommt noch ZF1 zum Einsatz). Denn die Extra-Arbeit Smarty wieder auszubauen, wird sich niemand machen.

Wer ist hier die Zielgruppe? Einerseits hat man ein fertig ausgebautes Framework, das die Applikationsstruktur schon weitestgehend vorgibt mit Views und mit Smarty. Das bietet sich für Template-Coder an und dürfte die PHP-Cracks abschrecken. Andererseits fehlen wie bei ZF die Models. Das dürfte wiederum Template-Coder abschrecken. Und wirkt auf mich wie ein fertiges Auto, das ohne Motor ausgeliefert wird.

Enlight hat klare Stärken im View-Bereich – hier ist alles soweit ausgebaut, dass man quasi direkt aus den Demo-Applikationen mit HTML loslegen kann. Enlight folgt wie ZF einem Ansatz, der nicht MVC sonder VC ist. Und hier übernimmt Enlight den Ansatz von ZF. Ich selbst finde hier ZF – gerade für den Einsatz in kleineren Projekten – eher fragwürdig. Das offizielle Model-Tutorial bekam einiges an Kritik weg. Und das zurecht, wie ich finde. Im Endeffekt wird man MVC-Frameworks mit PHP in den meisten Fällen zum Ausliefern von Webseiten mit Datenbankanbindungen verwenden. Den Einsatz von Data-Mappern halte ich in kleineren Projekten für haarsträubend.

Ich kann in CakePHP und übrigens auch in Flow3 mit Doctrine direkt mit dem Kern meiner Applikation loslegen. Und direkt mit mit der Konzeption meiner Daten starten. Die Models in CakePHP mit der „Convention over configuration“-Doktrin sind großartig. Und ACL kann ich auch direkt nutzen, sowie Datenvalidierung im Model.

Größe der Libraries wäre auch nochmal so ein Punkt. Und ob ich nicht gleich ZF oder Komponenten aus ZF nutze, statt mich an einen Drittanbieter zu binden.

Alles in allem: kann man, muss man aber nicht als eigenständiges Framework. Für Shopware Entwickler macht das Framework innerhalb von Shopware Sinn, um eigene Applikationen „von scratch“ zu schreiben ist der Markt an konkurrierenden Angeboten allerdings riesig.

Update 22.05.2013: Die Inhalte der Domain enlight.de haben aufgehört zu existieren. Ebenso ist Github seit einem Jahr nicht mehr geupdatet worden. Man kann davon ausgehen, dass Enlight künftig nicht mehr als eigenständiges Framework vermarktet wird, sondern nur noch innerhalb von Shopware Verwendung findet. Case closed.