Einzelnen Beitrag anzeigen
  #19 (permalink)  
Alt 21.12.2010, 14:00
Benutzerbild von mantiz
mantiz mantiz ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Zitat:
Zitat von David Beitrag anzeigen
Wenn ich mich mal fragend einklinken darf: @Mantiz, wie realisierst du (bzw. wie hast du vor zu realisieren) joins? Willst Du mehrere Tabellen-Objekte miteinander verknüpfen, oder machst Du sowas händisch, also über eine normale SQL-Abfrage?
Ja, momentan mache ich sowas quasi händisch.
Die Klasse DbTable unterstützt keine Joins, soll halt eine simple Model-Klasse sein, die genau einer Datenbank-Tabelle entspricht.
Aber man könnte eine Model-Klasse DbJoinedTables schreiben, die das erledigen würde.
Zum Aufbauen von Queries habe ich eine Klasse DbQuery, womit ich das relativ simpel machen kann.

Beispiel:
PHP-Code:
$list $dbConnection->select()
        ->
from('table1 t1')
        ->
join('table2 t2''t2.id .''t1.id''left')
        ->
getList(); 
Zur Info:
DbConnection::select() liefert eine vorkonfigurierte Instanz meiner DbQuery-Klasse zurück.
Der Punkt bei "t2.id ." gibt an, dass es sich bei dem Wert "t1.id" um eine Tabellen-Spalte handelt, das ist für das Escapen wichtig.
Bei Mysql wird dadurch aus "t1.id" "`t1`.`id`", ansonsten würde es als String behandelt werden.

Welche Tabellen wie gejoined werden sollen könnte man per Attribute vorsehen und das Query anhand dessen aufbauen.

Sollten noch kompliziertere Queries benötigt werden, dann muss ich erstmal in den sauren Apfel beißen und das Query per Hand zusammenbauen.

Ich hatte vor einger Zeit auch mal versucht einen OR-Mapper zu schreiben, bin aber kläglich gescheitert, ist nicht zu unterschätzen.
Evtl. greife ich das irgendwann nochmal auf, aber bestehende OR-Mapper sind nicht umsonst so umfangreich, da gibt es einiges zu beachten was mir momentan einfach zu komplex ist.
Erstmal brauche ich jetzt eine hoffentlich vernünftige Grundstruktur.

Zitat:
Zitat von Praktikant Beitrag anzeigen
Entschuldige, dass ich so lange nichts habe von mir hören lassen. Ich habe deinen Text mehrfach gelesen und mir Gedanken gemacht.
Kein Problem.

Zitat:
Zitat von Praktikant Beitrag anzeigen
Ich denke, ich werde mir viel bei dir abschauen und mich ebenfalls mehr mit Frameworks auseinander setzen Danke für den Tipp mit dem Buch.
Im Grunde schaust Du ja nicht bei mir ab, sondern bei den ganzen Frameworks.
Sehr viele Ansätze (zumindest was grundsätzliches betrifft) habe ich ja aus den anderen Frameworks, nicht dass der Eindruck entsteht ich hätte mir das alles selbst ausgedacht, ich kann's nicht oft genug sagen.
Vor allem die Unterteilung in Bootstrap-Datei (bei mir die index.php), Router, Frontcontroller, (Application-)Controller habe ich aus dem Zend-Framework, wobei Zend im Frontcontroller noch einen extra Dispatcher für den Aufruf (die Aufrufe) von Controllern verwendet. Dies macht ebenfalls Sinn, da Zend hier eine Controller-Chain einsetzt, welche es erlaubt mehrere Controller-Actions verkettet auszuführen.
Für mich habe ich dafür aber keine Notwendigkeit gesehen, also hab' ich darauf verzichtet.

Zitat:
Zitat von Praktikant Beitrag anzeigen
Ich habe aber verstanden worauf du mit deinen Gedanken hin willst und gemerkt, dass es Sinn macht das ganze so aufzubauen. Danke für deine Beschreibung.
Kein Problem, am Ende bin ich mit der ganzen Sache auch noch nicht. Ich muss jetzt erstmal ein paar (kleinere) Projekte damit umsetzen, um zu sehen, wie sich das ganze in der Praxis verhält, oft ergeben sich dann Anforderungen, wo man vorher noch nicht dran gedacht hat.
Ich hoffe es ändert sich nicht mehr all zu viel.
Mit Zitat antworten
Sponsored Links