Artikel

Oktober 2010 | Artikel

pimcore: Content-Management-Framework auf Zend-Basis

(Link zum Artikel: http://www.it-republik.de/php/artikel/3374)

Ready … Set. Go!

Text: Dietmar Rietsch
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
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.
Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

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. Die Zend_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ß!

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Kommentare

Gravatar Wolfgang 06.10.2010
um 23:28 Uhr
Wo finde ich den Beispielcode zu diesem Artikel #zitieren
Gravatar Markus Wolff 08.10.2010
um 16:33 Uhr
Die Auto-Analogien nerven mich bei diesem Artikel immens. Ausserdem frage ich mich: Wie kann dieses CMS unter BSD Lizenz stehen, wenn es auf ExtJS aufsetzt? Letzteres steht unter GPL, wird aber mit dem CMS ausgeliefert. Insofern müsste doch auch das CMS unter GPL stehen? #zitieren
Gravatar Darek Sobczak 08.10.2010
um 18:24 Uhr
Ich beschäftige mich jetzt einige Wochen mit Pimcore und ich kann es genau so weiter empfehlen wie es oben beschrieben ist.

Es ist zwar noch nicht an jeder ecke perfekt und auch nicht bugfrei doch echt empfehlen. Ein Einsteiger Tutorial als Video gibt es im PHPmagazin, dazu findet man schon einige einleitung auf der pimcoreseite selbst.
#zitieren
Gravatar Uwe 11.10.2010
um 00:34 Uhr
"... ohne Tuning und tiefer gelegtem Autoverkäufer-Jargon"

Leider nicht daran gehalten, hört sich an als ob die Zielgruppe 15 Jährige sind, die als Hobby ihr Mofa frisieren. Hat niemand in der php Magazin Redaktion Korrektur gelesen?
#zitieren
Gravatar Darek Sobczak 11.10.2010
um 11:04 Uhr
Danke für den Einwand, doch bin ich hier in einem Deutschkurs geladet oder reden wir hier über Pimcore.
Auch wenn mein Kommentar nach einer Marketingförderung stinkt, man darf scheinbar keine eigene Meinung äußern.
Von meiner Seite sollte es nur mehr interesse Wecken, die Leute die sich neue Ansätze von einem CMS wünschen, die sind mit Pimcore gut bedient. Auch Leute die Typo3 oder ähnliche System nutzen, werden bestimmt einige schwierigkeiten haben, doch ich denke es lohnt sich.
#zitieren
Gravatar Uwe 11.10.2010
um 23:55 Uhr
Hallo Herr Sobczak,

wieso fühlen Sie sich angesprochen. Der Kommentar bezog sich nur auf den Artikel, wie an dem Zitat doch klar erkennbar.
#zitieren
Gravatar Kyrill Nadobnykh 12.10.2010
um 00:26 Uhr
Guten Abend allerseits,

ich finde persönlich eine nicht ganz perfekte Anologie ist viel besser, als gar keine - man findet jede Mende trockener Anleitungen und Beschreibungen im Netz, was unser Leben als Programmierer, Designer usw. etwa eintönig und langweilig gestaltet... Warum nicht mal, zur Abwechslung aufs Gaspedal treten ;)

Was die Frage mit der Freigabe von ExtJs (heute: Sencha) GUI unter BSD angeht, bleibt für mich auch erstmal ungeklärt. Über eine Aufklärung würden sich bestimmt viele Kollegen sehr freuen. :)

MfG aus Stuttgart,
Kyrill Nadobnykh
#zitieren
Gravatar Dietmar Rietsch 12.10.2010
um 16:59 Uhr
Hallo!

Ganz kurz zu den Auto-Analogien: Ich habe einiges an Feedback zu diesem Artikel bekommen. Der größte Teil war sehr gut, einige Leute fanden aber, dass zu viel Rennwagen-Feeling aufkommt. Akzeptiert und ich werde es das nächste Mal besser machen.

@Kyrill: Danke für Deine Worte. Mehr habe ich hier nicht hinzuzufügen.

Bezüglich der Lizenzierung und ExtJS: Pimcore steht unter der modified BSD Lizenz und daher unter einer GPL kompatiblen Lizenz. Nähere Infos siehe http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

Ausserdem werden die von pimcore verwendeten Bibliotheken unter deren Lizenz "mitgeliefert". Siehe http://www.pimcore.org/license

Beste Grüße aus Salzburg
Dietmar
#zitieren
Gravatar Jan 12.10.2010
um 20:21 Uhr
Also das GPL-Problem war das Erste was mir durch den Kopf ging, als ich auf Pimcore aufmerksam wurde. Auch wenn diese BSD-Variante irgendwie GPL-kompatibel ist, dann doch aber nur in eine Richtung -> BSD lizenzierter Code kann zu GPLed Code werden, oder? Die andere Richtung macht keinen Sinn...
Auch wenn es heisst, dass die mitgelieferten Pakete unter den jeweiligen Lizenzen stehen, ist es bei einem GPL lizenzierten Teil simple: Es ist ansteckend und alles andere MUSS auch GPL sein... keine kompatible Lizenz, das würde doch keinen Sinn machen... ausser wenn es am Ende wieder in der GPL landet. Es steht doch auch ganz klar in dem Link von Dietmar (http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL).

Ich finde das wirklich sehr merkwürdig...

Schönen Gru0
Jan
#zitieren
Gravatar Stevie 28.10.2010
um 02:22 Uhr
Endlich mal ein Artikel der sich nicht ließt wie eine Gebrauchsanleitung für Staubsauger. Sowas will doch kein Mensch mehr lesen- schon garnicht Leute die was mit dem Thema anfangen können. Bravo!

Tschö, Stevie
#zitieren
Gravatar Spirit 28.10.2010
um 15:00 Uhr
Was die Lizensierung angeht, ist dort zu lesen, dass die verwendetn Libraries (Sencha) Ihre eigenen Lizenzen beibehalten. DIes müsste zur Folge haben, dass ich die Sencha Lib kommerziell lizensiere und damit den viralen Effekt der GPL gebannt habe.
Ich habe noch nicht überblickt, ob noc andere verwendeten Libs unter GPL stehen. Bin gerade erst über Pimcore gestolpert.
Werde ich definitiv testen :)

Greetz
Spirit
#zitieren
Gravatar Patrick Lengauer 29.04.2011
um 19:37 Uhr
So klasse das CMS aussieht und so sehr ich mich dafür interessiere, macht es mich stutzig wenn der objektive Journalist und Prüfer dieses Systems auch gleichzeitig sein Mechaniker ist. Autor: Dietmar Rietsch Agenturleiter Full-Service-Internetagentur elements.at
und aus dem pimcore Impressum:
The pimcore.org website and the pimcore Content Management Framework are elements.at products
#zitieren