Was ist pimcore und wofür brauche ich das?

Ich habe mich, wie ich neulich schon geschrieben habe, in der letzten Zeit ein wenig mit pimcore auseinander gesetzt. Aber was genau ist pimcore und wofür kann man es benutzen?

The Good & the Bad

Laut Eigenaussage kann/ist pimcore folgendes:

Natürlich ist da viel Marketing dabei. Primär kann man mit pimcore recht einfach und flexibel, Seiten erstellen, deren Inhaltsbasis Modularer, vernetzter Content ist. Die Einstiegshürde ist die Nutzung des Zend-Frameworks, der Rest ist im Beispielcode recht gut dargestellt und ermöglicht es auch unerfahreren PHP-Entwicklern, sich kurzfristig in die Funktionalität hineinzudenken.

Zu glauben, pimcore wäre ein fertiges CMS (im WordPress’schen Sinne), ist leicht vermessen: es gibt keine fertigen Templates, sondern ein eigenes Design. Die Templatesprache ist PHP. WordPress hat Templates ohne Ende, mit Plugins und Themes kann man sich da leicht einen funktionalen Overkill einfahren, Funktionalität für den Besucher muss man mit pimcore selbst bauen. Drupal kommt dem Denkprinzip von pimcore da schon recht nahe, aber hier legt das Neulings-CMF aus Österreich eine deutlich striktere Trennung vor: Adminbereich und Besucher-Frontend werden hier von Anfang an sauber getrennt.

Dazu kommt, dass pimcore die Schnittstellenorgel rauf und runter spielt. Die Daten der Objekte lassen sich unter anderem per XML und JSON-Schnittstellen abrufen und modifizieren. Das ist gut und praktisch, wenn man Websites und Apps aus der gleichen Datenbasis bespielen will.

The ugly

Leider gilt das nicht für die initiale Konfiguration des Systems. In den Templates fragt man Objekte und Klassen ab, die in der Datenbank und nicht auf Code-Ebene generiert werden. Die Klassendateien werden aus dem Admin-Backend gefüllt. Statische Routen werden in der Datenbank angelegt. Die Klassendefinitionen werden teils-teils abgebildet.

Aus Entwicklungssicht ist das relativ ungünstig, weil die Datenbank in der Regel nicht Teil des versionierten Codes von pimcore ist, und zentrale Dinge wie die statischen Routen, die z.b. in der $view->url()-Funktion benötigt werden, damit nicht im Webprojekt-Code vohanden sind. Das sind Dinge, die bei WordPress mittlerweile deutlich besser funktionieren. Mit diesem etwas komischen Gefühl stehe ich glücklicherweise aber nicht alleine da, denn hier kann ein einzelnder Nutzer mit Admin-Rechten (nicht Server-Zugang) mit ein wenig Ungeschick und unwissen, die Website kaputtmachen. Vielleicht wird sich das mit kommenden Versionen noch geben.

Aber nicht nur die Routen, auch die Klassenbibliothek lässt sich nicht rein aus dem Code erzeugen, ohne Gegenstück in der Datenbank sind die Klassendateien für das Aufsetzen eines Projekts eher zwecklos. Ein Import geht, soweit ich das sehe, nur, wenn ich die Datentypen vorher im Admin-Backend aus der Klasse exportiert habe, eine Übernahme der Daten auf Codebasis geht nicht.

Fazit

Wer mit den oben angesprochenen „häßlichen“ Teilen leben kann, bekommt mit Pimcore ein flexibles Werkzeug an die Hand, mit dem sich datenbasierte Websites und Apps vergleichsweise einfach und schnell umsetzen lassen.

2 Kommentare » Schreibe einen Kommentar

  1. Hallo Christian,

    gute Zusammenfassung.
    Mittlerweile musste du Dir die neuste Version von Pimcore nochmals ansehen. Da hat sich ne Menge in 3 Jahren getan, u.a. läuft Pimcore nun auch unter Symfony. Dein Fazit würde mich nach erneuter Begutachtung der aktuellsten Version interessieren.

    Viele Grüße
    Nico

    • Ich arbeite tatsächlich schon mit Pimcore 5 und finde, das System ist an vielen wichtigen Stellen verbessert worden, wenn auch nicht an allen. Mit 5 ist der Backup-Task z.B. entfallen und das arbeiten mit mehreren Personen, die Klassen verändern ist leider kaum besser geworden.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.