Der zweite FLOW3-Vollzeitentwickler Karsten Dambekalns hat sich vor allem dem Thema Content Repositories und Persistenz von Objekten verschrieben. In seinem Vortrag 'Objektpersistenz mit FLOW3' ging es primär um die Arbeit mit Repositories und persistierten Objekten aus FLOW3 heraus.
Nachdem Robert Lemke heute morgen schon kurz an einem in FLOW3 realisierten Blog verdeutlichte, wie einfach die Arbeit mit Objekten in FLOW3 sein kann, erläuterte Karsten Dambekalns nun die moderne Art der Datenhaltung fernab von SQL und redundanten Schemata-Definitionen.
Die Basis für Repositories bildet das Domainmodel. Dort gibt es Entities (z.B. einen Blogpost) und Values (z.B. der Veröffentlichungsstatus eines Blogbeitrags), die sich zu komplexen Datenstrukturen (z.B. ein Blogsystem) kombinieren lassen.
Das Besondere: die Struktur des Content Repositories wird direkt über die Model-Klassen in PHP per Reflection und Annotations (Code-Kommentare) ausgelesen. Klingt erstmal etwas oversized, aber die Folge daraus ist, dass der Entwickler sich lediglich um die saubere Definition seiner Objekte in den Models kümmern muss und ihm viele Automatismen (z.B. automatische Speichern von Objekten, Typ-Validierung,...) danach die Arbeit erleichtern.
Doch wo werden die Daten nun gespeichert?
Für die Speicherung kommt aktuell die PDO-Extension von PHP zum Einsatz. Über PDO kann auf SQLite, MySQL und MySQL zugegriffen werden
Für Anfragen an das Content Repository steht übrigens eine Query-Factory zur Verfügung, die bekannte Standard-Funktionen (z.B. findBy, oder findAll) zur Verfügung stellt.
Ich fand beeindruckend, wie einfach Queries an das Repository geschickt werden können und wie effizient die Repository-Philosophie bereits in FLOW3 integriert wurde (soweit man das als Betrachter beurteilen kann).
Bisher war mir nie richtig bewusst was diese ganze Content-Repository-Geschichte für Auswirkungen die Definition von Models und Objekten hat, so dass ich dem Thema immer mit einer soliden Portion Skepsis gegenüberstand.
Als besonderes Bonbon zeigte Karsten Dambekalns dann auch noch einen Prototypen einer webbasierten Verwaltungsoberfläche für Content-Repositories auf Basis des ExtJs-Frameworks.










