Drupal und OOP
am 10.10.2010 - 21:05 Uhr in
Drupal ist nich OOP - das ist das meistgehörte Argument, warum Entwickler es ablehnen. Natürlich ist das Urteil oberflächlich, und natürlich haben sie sich nicht wirklic mit der API und dem Hook-System beschäftigt. Jedoch - ist es ihnen zu verdenken? Schaut man sich ein neues System an, hat man erstmal keine Geduld.
Ein interessantes PDF fand ich hier http://de.consenser.org/node/1785
Das PDF ist angehängt. Unnötig zu sagen, daß Drupal abgelehnt wurde...
Ntürlich extrem oberflächlich und dumm, der Test. Der "Tester" hat offensichtlich nach Strukturen gesucht, die er aus Typo3 kannte und diese nicht gefunden. Dann war die Geduld wohl auch schon am Ende.
Ich persönlich habe das Hook-System auch noch nicht ganz verstanden. In diesem Thread möchte ich nur zum Teil über OOP vs Drupal API diskutieren, sondern mehr darüber, wie man einem Entwickler, der Drupal zum ersten Mal benutzt, erklärt, welche Vorteile das Drupal-System hat und wie es sich zu OOP verhält.
Und bitte keinen Flame War :) Die haben halt nur oberflächlich hineingeguckt, diese Tester da, und wir sollten daran arbeiten, daß der nächste Test anders ausfällt ;)
Anhang | Größe |
---|---|
Drupal-Test.pdf | 86.6 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst du diesen Forum nicht
am 10.10.2010 - 21:48 Uhr
Kannst du diesen Forum nicht mit etwas gehaltvollerem eröffnen?
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Äh ja, der Artikel war Mist,
am 10.10.2010 - 21:58 Uhr
Äh ja, dieser Test war Mist, auf den mein initialer Gedanke fußte, das gebe ich zu.
Jedoch google mal nach "Drupal Test" dann steht der Forenpost, aus dem das stammt, ganz oben...
Mir geht es auch mehr um die Aufklärungsarbeit: wie erklärt man es jemand, der sagt "Kein OOP? Will ich nicht".
eigentor schrieb Mir geht es
am 10.10.2010 - 22:39 Uhr
Mir geht es auch mehr um die Aufklärungsarbeit: wie erklärt man es jemand, der sagt "Kein OOP? Will ich nicht".
Damit, dass OOP ein Konzept ist, das nicht zwingend eine Umsetzung in Sprachfeatures erfordert. Passende Erläuterung findet man hier: http://drupal.org/node/547518
Wenn ich an meine Zeit als Java-Entwickler zurück denke, dann gruselt es mich in vielen Punkten. Wenn ich in Drupal ein Systemereignis abfangen und eine Aktion starten will, dann erstelle ich eine gewissen Konventionen folgende Funktion und das System ruft sie "automagisch" auf (implizite Logik). In Java muss ich eine Instanz einer Klasse erzeugen und als Event-Listener registrieren, die ein bestimmtes Interface implementieren muss. Über das Interface erhalte ich eine Event-Objekt, mit dem ich dann hantieren kann. Das ist explizite Logik, die viel Overhead (viel Tipparbeit => aufgeblasener Code => mehr Fehlerquellen) erzeugt.
Klar geht es auch objektorientiert UND elegant. Frameworks wie Django (Python) und Rails (Ruby) zeigen wie es auch geht. Die haben aber nicht die Verbreitung und den historischen Ballast von PHP / Drupal. Als Drupal entwickelt wurde, hatte PHP in Sachen OOP nicht viel zu bieten. Statt später überholte Features zu nutzen hat Dries die Problematik simplifiziert und dann ganz pragmatisch für Lösungen gesorgt. Das Ergebnis ist schlank, robust, performant leicht verständlich, wenn man die Grundprinzipien von OOP verstanden hat und nicht nur in Form von Implementierungsdetails irgendeiner Sprache kennt.
Suchmaschinenoptimierung (SEO) & Drupal
OOP
am 11.10.2010 - 07:45 Uhr
Ganz einfach. Folgendes Szenario ist mit reinem OOP und einer aktuellen PHP-Version zu bewerkstelligen:
Es existiert eine Basisfunktionalität, die irgendetwas tut (es sei hier mal unerheblich, was genau). Diese Funktionalität kann über 1..n Module so erweitert bzw. abgeändert werden, wie es mit dem in Drupal vorhandenen hook-System machbar ist.
Wenn jemand das mit einer aktuellen PHP-Version hinbekommt, so möge er dies bitte als Post auf der Startseite von drupal.org veröffentlichen. Ewiger Ruhm wäre ihm (oder ihr natürlich) damit gewiss.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Artikel zum Thema
am 14.10.2010 - 00:43 Uhr
Drupal bezeichnet seine Art der Programmierung offensichtlich als AOP.
http://de.wikipedia.org/wiki/Aspektorientierte_Programmierung
Das gilt nicht durchgehend für Module, ich meine, daß Views durchaus OOP (und trotzdem Hooks) verwendet.
Ressourcen hierzu, und dazu, warum (größtenteils) kein OOP verwendet wird:
Erklärungen zu AOP und Hooks:
Zunächst mal die "offizielle" Erklärung aus den drupal.org handbooks:
http://drupal.org/node/547518
Dies hier on Matt Butcher geht ziemlich in die Tiefe:
http://technosophos.com/content/why-object-oriented-programming-bad-drupal
Das hier dafür ganz kurz:
http://kmaheshbhat.com/blog/aop-and-drupal
das hier auch:
http://stackoverflow.com/questions/130467/how-does-aop-work-in-drupal
Erklärung, wie man Hooks benutzt, aus dem großen IBM-Dokumkent. Nach Überschrift "Hooks" suchen:
http://www.ibm.com/developerworks/ibm/library/i-osource5/
Oder doch OOP?
Es gibt auch Stimmen in Drupal, die sich für OOP stark machen, namentlich Larry Garfield, hier sein Vortrag von der DC SF, den er bereits mehrfach gehalten hat:
http://dc2009.drupalcon.org/session/objectifying-drupal-introduction-oop
Der Schreiber dieses Artikels schrieb ihn, nachdem er sich für einen Monat mit Drupal auseinandergesetzt hat, auch eine interessante Perspektive:
http://www.digett.com/2010/04/26/object-oriented-approach-drupal-module-...
Interessant hier die Kommentare.
Interessant vor allem die Unterschiede zwischen OOP z.B. in Java und OOP in PHP, das von vielen als unvollständig implementiert bezeichnet wird. Interessant auch, daß Rasmus Lerdorf in seiner Keynote in Kopenhagen auf die Frage, ob Drupal OOP verwenden solle, das erstmal pauschal verneinte ;). Allerdings muss man Rasmus Auftritt und Aussagen wohl immer mit etwas Vorsicht betrachten, der Herr proviziert gerne.
MVC oder nicht
Es wird häufig in einem Atemzug erwähnt, daß Drupal nicht OOP verwendet, daß es auch nicht dem MVC Pattern folgt. Auch dazu gibt es interessante Artikel, immer zu beachten die Kommentare:
Von Larry Garfield:
http://www.garfieldtech.com/blog/mvc-vs-pac
Von Matt Farina:
http://engineeredweb.com/blog/10/4/its-time-nomvc
Man kann also auch bzgl. des MVC-Modells durchaus geteilter Meinung sein. Persönlich fand ich immer, daß Drupal dem Modell (in seiner Essenz) durchaus folgt. Leute, die zu viel Funktionalität in den Theme Layer schreiben, sind natürlich böse ;)
Der "Test" aus dem Anhang
am 14.10.2010 - 09:08 Uhr
Der "Test" aus dem Anhang hätte einen Eintrag und einen "Bust" auf Drupal Myth verdient: http://drupalmyths.drupalgardens.com/
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
t3n schreibt was
am 18.10.2010 - 09:01 Uhr
oho: "Ein Vergleich der Schreibweisen in Drupal 6 und 7 verdeutlicht den Einsatz von PHP 5 und der stark verbesserten Objektorientierung der neuen Version."
aus: http://t3n.de/magazin/ausblick-anstehende-release-neuerungen-drupal-7-22... erste Seite.
Weiss zwar nicht, ob man das so sagen kann, aber egal. die Nicht-Drupal-Entwickler wollen das ja hören...