Pimcore: Erste Schritte – ein Selbstversuch

Als langjähriger TYPO3 Entwickler/Integrator habe ich schon einige Projekte umgesetzt und musste mich intensiv mit TYPO3 auseinandersetzen. Mit NEOS bin ich noch nicht so ganz warm geworden.

Ich kannte Pimcore schon länger. Die Features sahen vielversprechend aus und eine Testinstallation mit Blick ins Pimcore Backend hatten das Interesse bei mir geweckt. Es fehlte nur ein Projekt um Pimcore intensiver auszuprobieren, sich etwas einzuarbeiten. Und es hat sich ein Projekt ergeben ;-)

Benötigte Kenntnisse
Für Pimcore werden Kenntnisse in PHP und dem Zend Framework benötigt. Im Frontend wird PHP fürs Templating verwendet. Kenntnisse in CSS und Javascript sind natürlich obligatorisch ;-)

Installation
Die Installation geht schnell von der Hand. DB Verbindung eingeben, evtl. noch schnell einen Blick in die sehr übersichtliche Darstellung des System Requirements Checks, ersten User anlegen, und fertig.

Backend
Das Backend ist sehr übersichtlich in zwei Spalten eingeteilt. Was mir dabei besonders gefällt ist dass die drei wichtigsten Bereiche Documents, Assets und Objects in der ersten Spalte mit jeweils eigenen Pagetree in einer Art Akkordion zu erreichen sind.
In der zweiten Spalte werden alle möglichen Documents, Assets, was auch immer in mehreren Tabs angezeigt. Es können z.B. mehrere Documents parallel geöffnet bleiben. Speziellere Dinge sind im Menü ganz links enthalten.

pimcore-object-classes
Pimcore Backendansicht: Links separate Pagetrees für Documents, Assets und Objects. Rechts parallele Bearbeitung mittels Tabs.

Templating
Das Templating geschieht mit Zend. Jeder Seite kann ein Controller mit einem definiertem Template zugewiesen werden. Hier wird keine spezielle Templating Engine genutzt, wie z.B. Twig oder Fluid, sondern schlichtweg einfach PHP selbst. Ich persönlich finde, dass dies kein Nachteil ist. Ist halt Geschmackssache und auch wieder ein kleiner Overhead der entfällt.
In den Seitentemplates können mit so genannten Editables Eingabefelder bzw. Contentbereiche für Contentelemente definiert werden die dem Redakteur zur Verfügung stehen. Im Pimcore Backend kann die Seite in einer fast WYSIWYG Darstellung editiert werden. In einem Tab daneben gibt es die richtige Preview der Webseite.

Content Elemente
Content Elemente heissen Areablocks bzw. Bricks. Diese werden über eine Templatedatei definiert die wiederum Editables enthalten.
So können sehr kurz und transparent Contentelemente angelegt werden.

Image handling und Thumbnails
Im Backend können Workflows mit mehreren Transformations für Bilder und sogar Videos angelegt werden. Dabei kann das Bildformat sowie die Auflösung bis hin zu Printmedien eingestellt werden. Diese Thumbnail Konfigurationen können in den Templates mittels PHP aufgerufen und auf Assets angewendet werden, entsprechende Bilder werden dann generiert.

pimcore-thumbnails
Pimcore: Bilder Workflows über Thumbnails.

Klassen und Objekte
Für Inhalte die über normale Contentelemente hinausgehen wie z.B. News oder Produkte können Objekte und Klassen im Pimcore Backend angelegt werden. Über eine Art Formbuilder können Eingabefelder (Text, RTE, Bilder, Relationen, usw.) festgelegt werden die z. B. für ein Newsbeitrag benötigt werden.
Die dazu gehörigen PHP Klassen und MySql Tabellen werden automatisch angelegt. Die Objekte können im Controller instanziert und an die View übergeben werden.
Mit ein bisschen Übung ist schnell eine List- und Detailview realisiert.

Routing und static Routes
Das Routing ergibt sich automatisch über den Seitenbaum. Und jeder Seite ist auch letztendlich ein Controller zugewiesen. Somit ergibt sich auch automatisch aus dem Seitenbaum die finale Speakingurl.
Darüber hinaus können mit static Routes mittels  Regex Patterns Pfadsegmente definiert werden die als Parameter an den Controller übergeben werden.

pimcore-static-routes
Pimcore: Static Routes sind über Patterns definierbar.

Formulare
Mit Zend Forms können Formulare im Controller genutzt werden.

Fazit
Nach meinem kleinen Ausflug in die Pimcore Welt bin ich sehr positiv überrascht. Leider (Schande über mein Haupt ;-) habe ich nur einen direkten Vergleich zu TYPO3 und mit WordPress mache ich zu wenig obwohl diese Seite WordPress nutzt.

Vieles unter Pimcore ist erfrischend einfach zu erledigen, und viele Dinge sind in Pimcore out-of-the-box mit dabei. Und ich habe beileibe in diesem kurzen Beitrag und auch Projekt, die vielen weiteren Features noch gar nicht genutzt (Plugins, Web2Print, User & Rechte, SEO, Newsletter, Rest API, Backend Eventhandling, Personalisierung, Targeting). Einfach bemerkenswert was alles in Pimcore enthalten ist. An anderer Stelle muss ich dafür einige Plugins für diesen Funktionsumfang installieren, falls es überhaupt welche gibt.

Aus Sicht des Redakteurs ist das Backend sehr intuitiv zu nutzen. Mehrere Dokumente können parallel geöffnet bleiben und bearbeitet werden. Dabei macht es keinen Unterschied ob es sich dabei um ein Document (Website), Asset oder Objects handelt.
Hovert man über einen Asset folder werden die darin enthaltenen Medien rekursiv über alle Unterordner als Thumbnail dargestellt. Über einem Document wird eine Preview der gesamten Website angezeigt.

pimcore-asset-thumbnails
Pimcore: Thumbnails für alle Assets. Rekursiv über alle Unterordner.

Es gibt sogar die Möglichkeit mit Deeplinks bis ins Backend hinein gezielt eine Seite im Backend anzuzeigen.

Aus Sicht des Integrators, wie gesagt, ist vieles einfach und schnell umgesetzt. Und dies ohne Konfigurationsorgie. Aufgrund des Funktionsumfanges dürfte es auch nicht nötig sein weitere Extensions/Plugins zu installieren. Abhängigkeiten zu Plugins und deren Weiterentwicklung werden damit minimiert.

Aus PHP Entwicklersicht denke ich, dass sich jeder der sich mit dem Zend Framework oder MVC beschäftigt hat schnell zurecht findet. Composer ist auch mit an Bord was will man mehr ^^

Cons
Einen kleinen Wermutstropfen gab es allerdings doch. Pimcore nutzt MySql Features (CREATE ALGORITHM…) die z.B. bei kleineren 1&1 Hostingpaketen nicht enthalten sind. Im Test auf meinem Alfahosting Paket konnte ich Pimcore erfolgreich testen, final bei 1&1 schlug dies fehl.