PHP Magazin

PHP, JavaScript, Open Web Technologies
X

WTC / IPC – die Serie! Viele spannende Themen – nicht nur zu den Konferenzen!

Ready … Set. Go!

pimcore: Content-Management-Framework auf Zend-Basis

Dietmar Rietsch

Erst seit einem knappen Jahr wird geschraubt, und dynamisch, schnell und mit edlem Interieur versehen hat pimcore die Herzen im Nu erobert. Aber schauen wir dem Neuen einmal unter die Haube: Im Herzen der sportlichen Powerlimousine werkelt das Zend Framework in seiner aktuellen Fassung. Da ist Performanz gesichert und zwar in jeder Verkehrssituation. Der Innenraum besticht durch hochwertige Komponenten und das klare ExtJS-Interface macht das Navigieren zum Kinderspiel. Kommen Sie, steigen Sie ein! Drücken wir mal aufs Gas.

Aber fangen wir von vorne an – kurzfristig ohne Tuning und tiefer gelegtem Autoverkäufer-Jargon. Pimcore ist ein auf dem Zend Framework basierendes Open-Source- (BSD-Lizenz) Content-Management-System und RAD-Framework. RAD im Sinne von Rapid Application Development. Das Core-System bietet dabei die Features, die man von einem modernen CMS erwarten kann: Angefangen von dem Asset-Management mit integriertem Web-2.0-Bildeditor, der strukturierten Rechtevergabe bis hin zum visuell eindrucksvoll gelösten Versionierungs- und Property-Management. Ein Highlight, neben der Unterbodenbeleuchtung, ist das schicke Backend, über das sämtliche Verwaltungs- und Wartungsfunktionen komfortabel und schnell erreicht werden können. Bei dessen Entwicklung standen ganz klar die Bedürfnisse der Editoren im Vordergrund: Content-Management muss Spaß machen. Und das macht es: Über das Multi-Tab-Interface können gleichzeitig mehrere Dokumente und Objekte im WYSIWYG-Modus bearbeitet werden, und mithilfe der reichhaltigen Drag-and-Drop-Funktionen ist das konkrete Warten der Inhalte ein Klacks.

Ein bewährtes und solides Chassis

Powered by Zend Framework (ZF) heißt es auf der virtuellen Heckscheibe von pimcore. Und wo es draufsteht, ist es auch drin. Architektonisch gesehen basieren die Kernfunktionen für die Verwaltung der Dokumente, Assets und Objekte zu 100% auf dem MVC-Modul des Zend Frameworks. So übernimmt zum Beispiel der Zend_Controller den gesamten Dispatch-/Routing-Prozess. DieZend_Views regeln die ganze Templatethematik. Eine dedizierte Templatesprache à la Smarty gibt es bei pimcore nicht. Wer die Zend_View_Helper kennt, weiß warum. Der Einsatz von PHP selbst als Templatesprache mit den unterstützenden Helpern ist mit ein wenig Disziplin das geeignete Werkzeug für den View-Layer. Des Weiteren ist Zend_Locale für das das Thema der Internationalisierung, Zend_Search_Lucene für die Volltextsuche und Zend_Cache für das objektbasierende und getaggte Caching zuständig. Diese Liste würde sich hier fast beliebig lang fortsetzen lassen. Kurzum: Eine sinnvolle Kooperation zwischen CMS und bestehendem Framework, ohne das Rad neu erfinden zu müssen.

Chromspoiler und Endrohr

Pimcore bietet, obwohl erst in der "jungen" Version 1.1, bereits ein interessantes Featureset für die Umsetzung anspruchsvoller Websites und -applikationen. Um nicht den Umfang des Artikels zu sprengen, möchte ich mich im Zuge dieses Workshops auf den RAD-Aspekt von pimcore konzentrieren. Und wenn man bei pimcore von RAD spricht, sind meistens das Objektmodul und die zusätzlichen Plug-ins gemeint. Das Objektmodul ist eine der drei Core-Komponenten von pimcore. Hauptzweck ist die Verwaltung strukturierter Inhalte und deren Relationen. Das Modul selbst kann in zwei separate Bereiche unterteilt werden: Die Klassenverwaltung, die sich um die Definition der Datenstrukturen kümmert, und den Objekteditor, der für das konkrete Management der strukturierten Daten zuständig ist. Aber bevor wir jetzt richtig los legen und so richtig Gas geben, ein paar einleitende Worte zur Workshopaufgabe.

Das heutige Rennen

Im Zuge dieses Artikels soll ein einfacher Werkstättenfinder inkl. Wartungs-Backend und Frontend-Suche erstellt werden. Die Applikation soll dem Besucher die Möglichkeit geben, anhand verschiedener Kriterien, die passende Autowerkstätte zu finden. Ohne das passende Umsetzungswerkzeug läuft da aber gar nichts – das ist klar. Um dem Achtzylinder pimcore einen satten Röhrer zu entlocken, braucht es PHP 5.3, einen Webserver (mod_php/fastCGI) und MySQL 5. Nach dem Download schnell das pimcore Package installiert und die einfache Setuproutine aufgerufen, und schon kann es losgehen. Noch einfacher? Laden Sie sich das pimcore VMware Image herunter: Ein fertiges Bundle, bestehend aus dem Web Application Server (Zend Server), MySQL 5, der pimcore-Installation und den Sourcen dieses Artikels befördern Sie rasch zur Pole Position.

Zend Server unter die Haube zu bringen, ist zwar kein Muss, er macht aber aus dem Serienmodell PHP 5.3 einen ordentlichen Bi-Turbo: Der Optimizer+ beschleunigt als schnellster Opcode-Cache pimcore von 0 auf 100 in wenigen Millisekunden. Und auch die integrierten Cache-Mechanismen (Data Cache in Verbindung mit Zend Framework oder Full Page Cache) kitzeln noch einiges an Leistung aus dem Boliden heraus. Außerdem kann man immer die aktuellste Version von Zend Framework und PHP ohne Komplettaustausch des Motors einsetzen – Updates sind im Zend-Server serienmäßig mit drin.

Natürlich finden Sie mehr und detailliertere Informationen zum Setup und zur Konfiguration unter pimcore.org. Aber jetzt lassen Sie uns anfangen.

Ganz langsam zum Start rollen. Nur nicht im letzten Moment noch eine Regelüberschreitung kassieren.

Und egal, ob Sie das kommende Rennen textuell (hier im Artikel) verfolgen oder per Videoübertragung (dem der aktuellen CD beiliegenden Screencast) mit dabei sind, es wird auf jeden Fall spannend. Schlüsselszenen werden im Artikel mit einem Timecode versehen, damit Sie in der Videoübertragung schnell die gewünschte Szene finden. Viel Spaß!

Definition der Datenstrukturen

Nun zart das Gaspedal antippen. Es geht los. Melden Sie sich unter http://IHR-SERVER/admin mit Ihren Credentials an (Default: admin/admin). Nach der Überprüfung des Ladedrucks und dem Laden der Interfacekomponenten startet pimcore das Backend (Abb. 1).

Abb. 1: Das pimcore Backend-Interface

Bei der Applikationsentwicklung setzt pimcore durchgehend auf das MVC-Pattern. Daher beschäftigt sich der erste Schritt mit der Definition der benötigten Datenmodelle:

  • Kategorien (Arten von Werkstätten)
  • Marken (Markenunterstützung der Werkstätten)
  • Werkstätten

Bei der Definition der Modelle verdeutlicht pimcore seinen RAD-Ansatz. Die Definition erfolgt direkt über das pimcore Backend – vollkommen ohne programmatischen Zwischenschritt.

 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).

Übersicht zu diesem Beitrag