Magento ist wohl die PHP Anwendung, der man die schlechteste Performance und den höchsten Verschleiß
an Programmierern nachsagt. Das geht so weit das es PHP Programmierer gibt, die sich schon deshalb weigern mit Magento
Projekten zu tun zu haben, weil sie sonst noch weitere Magento Projekte bekommen könnten.
Auch Aussagen wie "Magento hat schon jeden geschafft" sind keine ungewöhnlichen Aussagen.
Der in PHP geschriebene Web Content Viewer ist eines der wartungslosesten
und sichersten Blogsysteme die ich kennen gelernt habe. Grund dafür ist, dass es eigentlich ein Static Site Generator
ist, also nur einen haufen html Datein erzeugt, die man dann hochladen kann.
Und da es überwiegend nur mit schlichten text Datein gefüttert wird,
ist auch kein besonders aufwendiges Frontend dafür nötig und hat sogar den Vorteil, dass man
Inhalte gut über ein Versions Verwaltungs System managen kann.
Ein gutes Beispiel für einen Static Site Generator sind die GitHub Pages, die dank Jekyll auch das erzeugen von
Blogs erlauben.
Nun ist WCV älter als GitHub, hatte nie viele Nutzer, und erreichte eigentlich nie einen als Stable gekennzeichneten
Release. Es mag seltsam klingen, aber es wird nur von denen genutzt, die auch in der Lage sind es zu nutzen. Und dort
wird es auch heute noch zuverlässig eingesetzt.
Häufig ist der Wunsch da auf bestimmten Seiten einzelne Produkte genauer darzustellen.
In der Regel sind das CMS Seiten oder direkt die Startseite.
Teilweise dann auch mit einem Button, um das Produkt direkt in den Warenkorb zu legen.
Das aber natürlich nur für simple Produkte, da die ganzen Abhänigkeiten und Skripte, die an anderen Produkttypen
hängen viel zu kompliziert sind.
Das kommt daher, dass jeder Produkttyp eigene zusätzliche Templates, Layout.xml Anweisungen und das einbinden von
zusätzlichem Javascript zur folge hat.
Beruflich hat mich mein Weg nun doch zu Magento geführt, obwohl ich mir lange
Zeit vorgenommen hatte mich von Shopsystemen fern zu halten und auch immer
nur gehört habe, wie unnötig kompliziert gerade Magento gestaltet ist.
Ich muss sagen, ich habe mich sehr in Magento getäuscht. Sehr viele Parts sind
gut durchdacht und bieten eine Form der Anpassbarkeit, die selbst vielen
heutigen Frameworks noch fehlt. Die Art und Weise, wie große Teile der
Anwendung über xml Datein definiert sind, erinnert mich stark an das Konzept
des Dependency Injection Containers, nur das dieses Konzept im Gegensatz zu
Magento erst seit 2009 offiziell benannt wurde.
PHP in einer Flasche
Jedem ist es bestimmt schon mal passiert,
dass er eine Funktion oder Klasse hatte,
die einen Namenskonflikt verursachte,
weil es bereits eine gleichnamige Funktion/Klasse gab.
Die in PHP 5.3 eingeführten Namensräume sind eine Möglichkeit
dieses Problem seltener auftreten zu lassen, aber sie vermeiden es nicht.