Symfony Module schon in Drupal 7
am 03.07.2014 - 19:31 Uhr in
Hallo allerseits,
ich habe herausgefunden, wie man Module auf der Basis des MVC-Frameworks "Symfony" schon für Drupal 7 entwickeln kann.
Wenn ich das überhaupt darf, verlinke ich mal den zugehörigen Artikel in meinem Weblog.
Die Idee stammt von Typo3. Dort konnte man schon in Version 4.x mit Hilfe der Extension "ExtBase" Module auf Basis des MVC-Frameworks "Flow3" entwickeln. Flow3 ist ja die Basis von Typo3 Vers. 5.
So etwas fehlte mir in Drupal 7.x. Wie man ja weiß, basiert Drupal 8 zum großen Teil schon auf "Symfony". Es gibt zwar für Drupal 7 ein Modul "Symfony", das aber nach Aussage der Entwickler nur ein "Proof of Concept" ist. Man kann wenig damit machen, nur "Symfony-Klassen" in eigenen Modulen verwenden.
In meinem Artikel beschreibe ich, wie man dieses Modul so verändert bzw. Symfony so parametrisiert, dass man den kompletten Symfony-Workflow verwenden kann.
Ich zeige dann, wie man ein simples Blog als Symfony-Applikation entwickelt und in Drupal 7 als Modul integriert. Dabei kann man ohne Probleme auch die console-App verwenden für Scaffolding, etc. Das geht mit dem Symfony-Modul alleine nicht.
Zu meinem Erstaunen habe ich so etwas in der Drupal-Community bisher nicht gefunden. Ich schätze, die Lösung, die ich gefunden habe, dürfte von allgemeinem Interesse sein, da man so schon ab Drupal 7 Module einigermaßen investitionssicher für Drupal 8 entwickeln kann oder zumindest unter Drupal 7 für Drupal 8 Modulentwicklung üben kann. Ich bin meines Wissens der erste, der das geschafft hat und bin im Moment jedenfalls noch ziemlich stolz darauf. Hoffentlich nehme ich jetzt den Mund nicht zu voll.
Ich selber kenne mich nur rudimentär mit Symfony aus, habe aber vor, mich einzuarbeiten, weshalb ich an einer Diskussion meines Ansatzes sehr interessiert bin. Der hat bestimmt seine Grenzen, die ich aber selbst noch nicht ausgelotet habe.
Wer also Interesse an dem Thema mit Fragen und Anregungen hat, mit dem diskutiere ich gerne hier oder in meinem noch sehr jungen (und noch nicht durchgestyltem) Weblog.
- Anmelden oder Registrieren um Kommentare zu schreiben

Sorry, daß ich da etwas
am 03.07.2014 - 20:47 Uhr
Sorry, daß ich da etwas anderer Ansicht bin. Das wichtige ist die zu Grunde liegende Drupal-API. Die ändert sich aber mit Drupal 8 massiv. Da nutzt der Support für Symphony nur wenig. Module für Drupal 7 sind so nicht in Drupal 8 zu verwenden.
Genau solche Aspekte
am 03.07.2014 - 22:24 Uhr
@wla
Genau solche Aspekte interessieren mich.
Ich habe mal diese Seite hier speziell für Drupal 8 gefunden.
Dort wird das Demo-Bundle von Symfony als Drupal 8 - Modul integriert. Das ist vom Prinzip dasselbe, was ich für Drupal 7 gemacht habe. Ich habe halt nicht nur das Demo-Bundle integriert (das Hello-World-Beispiel wird in meinem Artikel auch beschrieben als Vorstufe zu meinem Blog-Beispiel), sondern ich habe außerdem ein eigenes Symfony-Blog-Bundle als Drupal-Modul integriert, wobei ich das Blog-Bundle nicht programmiert habe, sondern mit der console-App generiert habe.
Wahrscheinlich ist es so: Man kann in Drupal 8 genauso Module entwickeln, wie unter Drupal 7 in der gewohnten Art und Weise. Zusätzlich kann man aber auch Symfony-Module schreiben.
Deshalb ist es bestimmt keine schlechte Idee, sich in Drupal 7 dort schonmal einzuarbeiten.
Für mich gibt es noch einen
am 03.07.2014 - 22:59 Uhr
Für mich gibt es noch einen anderen Aspekt. In meinen Anfängen mit Drupal habe ich mehr selbst entwickeln wollen. Das mag in großen Projekten auch heute noch oft nötig sein. Für das was ich selbst an Seiten mit Drupal baue, brauche ich aber nur kleine Änderungen, wie Eingriffe in Formulare oder überschreiben von Theming-Funktionen. Dort ist man mit der speziellen Drupal-API am Besten bedient. In wieweit ich mich dazu in Symphony einarbeiten muß, weiß ich bisher noch nicht. Da lasse ich mich überraschen. Wenn das für mich heißt ab jetzt objektorientiert in PHP zu programmieren, das sollte ich hinbekommen, denn mit Java habe ich das bereits gemacht. Ich warte also erst mal in Ruhe ab, daß Drupal 8 verfügbar ist. Dann werde ich mir den Nachfolger zu "Pro Drupal 7 Development" besorgen und mich einlesen. Daneben hat mir immer der Blick in andere Module geholfen, Lösungen zu finden. Das sollte auch in Zukunft ein gangbarer Weg sein.
Das sehen viele Leute wohl
am 04.07.2014 - 09:05 Uhr
Das sehen viele Leute wohl auch so.
Es gibt ja den Drupal-Fork BackDrop, der sich der Weiterentwicklung per Symfony verweigert.
Ich selbst bin mir auch nicht sicher, ob das mit Symfony die richtige Richtung ist. Drupal selber besitzt ja schon ein leistungsfähiges Design-Paradigma (PAC), das durchaus konkurrenzfähig wenn nicht sogar besser ist als MVC (Symfony).
Es ist die Frage, ob es richtig ist, zwei Design-Pattern, die im Grunde das gleiche Ziel haben, miteinander zu vermischen.
Deshalb ausprobieren! Mit meinem Artikel zur Hand kann man schön experimentieren :-)
Hallo zusammen, also auch ich
am 04.07.2014 - 10:24 Uhr
Hallo zusammen,
also auch ich sehe da keinen Sinn diese (PAC-MVC) Paradigmen zu mischen,
auch wenn diese Verwandt sein mögen.
Die Vorgehensweise der Entwicklung ist bei beiden völlig unterschiedlich:
*In Drupal wird die Datenbank durch ein Interface generiert.
*In Symfony wird das Interface durch die Datenbank generiert.
*In Drupal sind die Daten Nodes(mixed arrays), in Smyfony Klassen.
Man kann auch beide Frameworks schlecht vergleichen, das hängt von der Aufgabe ab.
*Leistungsfähiger und Performanter ist sicher Symfony.
*Einfacher zu handhaben und schneller zur Erstellung ist sicher Drupal.
*Solltest Du für Deine Anwendung ein vorgegebenes Datenmodell haben, ist es besser Du fährst mit Symfony.
LG
Robert