Modulentwicklung oder Darstellung mit Views
Eingetragen von graxx (17)
am 09.08.2007 - 09:02 Uhr in
am 09.08.2007 - 09:02 Uhr in
Um ein paar eigene Funktionalitäten zu entwickeln mache ich mir zur Zeit Gedanken, ob man das in Drupal am besten mit Modulen macht, die selbst auf die Datenbank zugreifen, oder aber mit dem Views Modul. Wo liegt denn der Unterschied zwischen Views und Modulen, die sich Daten selbst aus der Datenbank nehmen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Views vs. Module
am 09.08.2007 - 09:59 Uhr
Das Views-Modul ist im Grunde genommen ein Query-Builder. D.h. es nimmt dir die Arbeit ab komplexe SQL-Queries zu schreiben. Das müsstest du in eigenen Modulen tun und noch einiges mehr.
Also mit Views bist du deutlich schneller am Ziel. Das kann natürlich manchmal ein wenig Performance kosten. Das halte ich aber nicht für kritisch. In anderen Frameworks insb. in der Java Welt wird oft und schon lange mit sog. O2R-Mappern gearbeitet. Auch die nehmen dem Entwickler das Schreiben von SQL-Statements ab. Und auch dort gibt es dann manchmal eine schlechtere Performance. Aber das stört dort niemand.
Also, wenn du ein Problem mit einer View lösen kannst, dann benutze diese.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Danke für die schnelle
am 09.08.2007 - 10:29 Uhr
Danke für die schnelle Antwort!
Was meinst du denn mit "noch einiges mehr"? Meinst du damit die eigentliche Modul-Entwicklung oder beziehst du dich damit auf das SQL-Statement und die Darstellung der Daten?
Kann man einen View eigentlich auch an ein anderes Modul "anhooken", so wie das bei Modulen mit einer hook-Funktion möglich ist?
Viele Grüße
Micha
graxx wrote: Danke für die
am 09.08.2007 - 11:38 Uhr
Danke für die schnelle Antwort!
Was meinst du denn mit "noch einiges mehr"? Meinst du damit die eigentliche Modul-Entwicklung oder beziehst du dich damit auf das SQL-Statement und die Darstellung der Daten?
Kann man einen View eigentlich auch an ein anderes Modul "anhooken", so wie das bei Modulen mit einer hook-Funktion möglich ist?
Viele Grüße
Micha
Zu 1: ja ich meinte den ganzen Rest der eigentlichen Modulentwicklung
Zu 2: ja kann man. Mit der Funktion views_build_view()
Siehe: http://www.drupalcenter.de/handbuch/4212#comment-13909
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Vielen Dank!
am 09.08.2007 - 12:05 Uhr
Vielen Dank!
Views entspricht
am 10.08.2007 - 16:57 Uhr
Views entspricht (namensteschnisch sicher nicht ganz zufällig) weniger einem OR-Mapper (ohne '2'), sondern ist ein Äquivalent eines SQL-View, angereichert mit einem Frontend und ein paar Controllern.
Die Aufgaben eines OR-Mappern ist deutlich komplexer, denn der muss auch Schreibzugriffe abdecken . Auch macht er SQL nicht a priori überflüssig. SQL wird nur gerne ersetzt, um keine Abhängigkeit von einer bestimmten RDBMS und deren Dialekt zu erzeugen. Eines der bekanntesten Tools für Java und .NET, Hibernate, bringt mit HQL eine SQL-ähnliche Abfragesprache gleich mit, denn Automatismen und ellenlange Konfigurationen bringen schnell mehr Komplexizität und Fehlerpotenzial als Nutzen.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Ist mir bekannt
am 10.08.2007 - 17:13 Uhr
Ich wollte auch nur einen Vergleich anstellen. Es ging mir ja hauptsächlich um Performance-Einbußen.
Es gibt schon sehr lange O/R (Object to (geschrieben auch 2) Relational) Mapper bei denen man tatsächlich kein SQL schreibt. Der erste war bei Apples Application Server "Web Objects". Dort erstellt man nur ein ER-Modell.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services