IPC Spring 2011 – Don’t click! Code!

Über die letzten Jahre sind einige sehr ausgereifte und flexible Content-Management-Systeme (CMS) entstanden, welche Endkunden die Verwaltung der eigenen Webseiten leicht machen und in vielen Fällen out of the box genügend Funktionen bereitstellen um gesamte Webpräsenzen zu stützen. In vielen Fällen benötigen Webseiten jedoch spezielle Funktionalität die auch mit dem mächtigsten CMS nicht abgedeckt wird. Für solche Anpassungen ist meist das Erweitern des CMS notwendig, was oft zu Kopfschmerzen auf Seiten des mit den Anpassungen betrauten Entwicklers führt. Diese Problemstellung leitet zu einer Klasse von Software-Systemen, die sich Content-Management-Frameworks (CMF) nennen. CMFs versuchen, eine einfache Grundlage oder auch nur einen Werkzeugkasten für spezialisierte Content-Management-Systeme zu bilden.

In seinem Vortrag Don’t click! Code! auf der International PHP Conference Spring 2011, erklärte Lukas Smith von der Liip AG die oben angesprochene Problemstellung und stellte das Symfony2 CMF vor. Das Projekt steckt im Moment noch in den Kinderschuhen, wird dafür allerdings explizit durch Feature-Wünsche von Entwicklern unterschiedlicher Firmen und auch Freelancern spezifiziert. So soll das Projekt von Anfang an von einer großen Community gestützt sein und im Bezug auf die enthaltene Funktionalität eine möglichst große Masse an Entwickler ansprechen.

Ein wichtiger Aspekt des Symfony2 CMFs ist, dass es von Anfang an auf NoSQL-Datenbanken setzt. Dies ist dadurch begründet, dass die Daten, die ein CMS speichern können soll, zu heterogen sind, als dass sie durch ein generisches Datenmodell in einem CMF sauber abgebildet werden können. Der hier entscheidende Punkt von NoSQL-Technologien ist, dass diese keine relationalen Datenbanken sind, in denen jede Entität eine fixe Menge von Attributen besitzt. Ganz im Gegenteil können NoSQL-Datenbanken mit dynamischen Datenstrukturen umgehen ohne vor der Persistierung von Daten zu wissen, welche Attribute und Relationen eine Entität haben könnte. Diese Eigenschaft macht sich das Symfony2 CMF zu Nutze und verwendet den Ansatz der Content Repositories von Java um alle anfallende Daten (welche in diesem Kontext als Dokumente bezeichnet werden) zu persistieren. Die Kerntechnologie in diesem Bereich wird die PHPCR ODM-API bilden, welche nach dem offenen Standard JCR (Java Content Repository), welcher im JSR-283 definiert ist. Diese beinhaltet neben den üblichen Persistenz-Funktionen auch nativ Unterstützung zur Versionierung von Dokumenten und der Speicherung von Dokumenten, die eine Graphen- bzw. Baumstruktur vorweisen.

Alles in allem klingt das Symfony2 CMF-Projekt sehr vielversprechend und sollte in den kommenden Monaten aktiv beobachtet werden. Ein wirklicher Zeitplan für ein erstes Release der Software existiert im Moment noch nicht, eines der explizieten Ziele des Projekts ist es jedoch, innerhalb von 12 Monaten brauchbare Ergebnisse vorzuweisen.

Avatar-Foto

Von Paul Seiffert

Paul ist seit Oktober 2010 ein Vollmatrose der Mayflower und arbeitet in einem Team von 6 Entwicklern als Lead-Architekt und stellvertretender Teamleiter. Zuvor studierte er an der TU München Informatik mit den Schwerpunkten Software-Engineering und Algorithmik. Sein Tech-Set umfasst sowohl PHP- als auch Javascript-Technologien wie Zend Framework 1, Symfony2, Node.js und Backbone.js. Paul ist immer an neuen Technologien und Vorgehensweisen interessiert und schreibt gerne über Neuerlerntes. Einige seiner Artikel sind hier auf http://blog.mayflower.de zu finden. Twitter: @SeiffertP Github: seiffert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert