MultiPart-Requests in Symfony einfach verarbeiten

in  Zikula Apps , , ,

MultiPart-Requests in Symfony einfach verarbeiten
In Symfony gibt es mit der Mime-Komponente eine komfortable Möglichkeit, MultiPart-Nachrichten zu erstellen. Nicht out of the box enthalten ist aber ein Interface, das den Zugriff auf die in eingehenden MultiPart-Requests enthaltenen Bestandteile erlaubt. Diese Lücke füllt das MultipartUpload-Bundle. Mit einem Event-Listener, der auf das Kernel-Event kernel.request hört, werden eingehende Requests daraufhin untersucht, ob sie mehrere Parts beinhalten. Ist dies der Fall, werden die einzelnen Teile extrahiert und in Request-Attributen bereitgestellt.

Tabellennamen mit Doctrine dynamisch anpassen

in  Zikula Apps , ,

Tabellennamen mit Doctrine dynamisch anpassen
Mit Hilfe der Metadaten von Doctrine lassen sich jegliche Daten zu einer Entität zur Laufzeit verändern. Allerdings kann das in manchen Anwendungsfällen fortwährend notwendig sein, zum Beispiel in Multi-Tenancy-Umgebungen. Wenn zudem Operationen mit dem Schema Manager in der Datenbank benötigt werden, kann es schnell unübersichtlich werden, da man sich nicht sicher sein kann, ob eine bestimmte Veränderung bereits durchgeführt worden ist oder noch nicht. Der folgende Code-Ausschnitt zeigt ein Beispiel für eine Klasse, die eine Modifikation zentral für alle Entitäten, die für einen bestimmten EntityManager registriert sind, durchführt - hier wird etwa der Name der durch die Entität angesprochenen Datenbanktabelle verändert:

Wie Module mit dem Event-System von Symfony miteinander interagieren können

in  Zikula Apps , , , ,

Wie Module mit dem Event-System von Symfony miteinander interagieren können
In Zikula gibt es verschiedene Konzepte zur Zusammenarbeit zwischen unterschiedlichen Modulen. Beispielsweise gibt es die Capabilities, mit denen Module bestimmte Fähigkeiten deklarieren oder einfordern können. Und mit dem Hook-System können Module in andere Module eingebunden werden, ihre Daten validieren oder weiterverarbeiten. Unter der Haube basieren Hooks auf Events. Dieser Beitrag zeigt, wie man das Event-System von Symfony direkt verwenden und damit eine weitere, wesentlich flexiblere Möglichkeit zur modulübergreifenden Interaktion nutzbar macht.

Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen

in  Zikula Apps , , , ,

Allgemeine und eigene Symfony-Events in generierten Zikula-Modulen
In ModuleStudio 0.6.2 liegt der Fokus auf die Anpassung des Generators auf Symfony und Bootstrap, was die Zielversion Zikula 1.4.0 anbelangt. Einige Neuerungen betreffen das Zusammenspiel mehrerer Module, die miteinander interagieren. Erstens werden nun Factory-Klassen für Entitäten und Repositories in Verbindung mit Service-Parametern eingesetzt, mit denen man die Entität eines Moduls X von einem Modul Y heraus erweitern und anpassen kann. Zweitens werden in den Doctrine Lifecycle-Events der Entitäten eigene Symfony-Events verwendet, mit denen sich ein anderes Modul einhaken kann.