Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Community › Marketing - Zielgruppe Entscheider, Designer, Entwickler und Endanwender ›

Drupal und OOP

Eingetragen von eigentor (1424)
am 10.10.2010 - 21:05 Uhr in
  • Marketing - Zielgruppe Entscheider, Designer, Entwickler und Endanwender

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 ;)

AnhangGröße
Drupal-Test.pdf86.6 KB
‹ Google veranstaltet mit Google Code-In Nachfolger von GHOP - Aufgaben-Schreiber und Mentoren gesucht Drupals Vorteile für Entscheider ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst du diesen Forum nicht

Eingetragen von Tobias Bähr (4019)
am 10.10.2010 - 21:48 Uhr

Kannst du diesen Forum nicht mit etwas gehaltvollerem eröffnen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Äh ja, der Artikel war Mist,

Eingetragen von eigentor (1424)
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".

  • Anmelden oder Registrieren um Kommentare zu schreiben

eigentor schrieb Mir geht es

Eingetragen von Alexander Langer (3416)
am 10.10.2010 - 22:39 Uhr
eigentor schrieb

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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

OOP

Eingetragen von stBorchert (6003)
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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Artikel zum Thema

Eingetragen von eigentor (1424)
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 ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der "Test" aus dem Anhang

Eingetragen von md (3717)
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/

  • Anmelden oder Registrieren um Kommentare zu schreiben

t3n schreibt was

Eingetragen von eigentor (1424)
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...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Tag 2 Stunden
  • Hey danke
    vor 1 Tag 21 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 15 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Stunde
  • Da scheint die Terminologie
    vor 1 Woche 4 Stunden
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association