Einzelnen Beitrag anzeigen
  #22 (permalink)  
Alt 21.12.2010, 15:28
Benutzerbild von mantiz
mantiz mantiz ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.845
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 Praktikant Beitrag anzeigen
Wie lange hast du ungefähr gebraucht bis zu deinem jetzigen Stand. Wie nah am "Ende" bist du mittlerweile?
Am Framework an sich habe ich die letzten 2 Monate gearbeitet, allerdings nicht am Stück. Vorher hatte ich bereits einen Versuch mit nahezu identischen Klassen wie aus dem Buch "PHP Design Patterns" unternommen, habe dann aber festgestellt, dass man Patterns nicht "einfach so" umsetzen sollte.
Und natürlich habe ich einige Klassen, z.B. DbQuery und Template bereits vorher schon gehabt und habe diese nur auf's Framework angepasst, sonst hätte ich entschieden länger gebraucht, da gerade die beiden Klassen für mich in der Entwicklung sehr zeitaufwendig waren.
Am Ende werde ich wohl nie sein, da das Framework eine Basis darstellen soll und sämtliche Module, die ich später mal brauche nach Möglichkeit integriert werden sollen.
Momentan baue ich 3 Seiten damit auf, eine einfache Website mit Kontaktformular, eine Bildergalerie und einen Shop.
Ich denke, wenn ich damit durch bin kann ich auf 1.0-beta gehen.
Ich neige aber dazu auch in fortgeschrittenen Zyklen Schnittstellen auf einmal über den Haufen zu werfen, so dass ich mir das gut überlegen muss.
Ich weiß auch noch nicht, ob ich das mal veröffentlichen will oder es auch nur mein kleines Werkzeug bleibt.

Zitat:
Zitat von David Beitrag anzeigen
Interessanter Ansatz. Allerdings frage ich mich immer, ob das ganze überhaupt noch vertretbar ist aus sicht der Leistungsfähigkeit. Ich mein, man muss die Attribute erst umständlich zu einer Syntaktisch korrekten Query zusammenbauen, die schlussendlich vom SQL-Server wieder geparst wird. Außerdem müssen die ganzen Objekte ja auch zwischengespeichert werden. Ich kann mir das aber auch nur einbilden.
Das stimmt auf jeden Fall, Performance geht verloren, aber das ist klar, anders geht's halt nicht.
Für mich besteht der Vorteil darin, dass ich mich nicht um so Dinge wie das quoten der Spalten oder escapen der Werte kümmern muss, weil das von DbQuery automatisch vorgenommen wird, das hilft schonmal bei der Übersichtlichkeit.
Zusätzlich bleibt man zu einem gewissen Grad portabel.

Bei einer Bildergalerie, die ich momentan entwickel gibt es z.B. ein "Image"-Model, welches von DbTable erbt. Bilder können veröffentlicht sein oder nicht, also hat das Model zwei Methoden "publish" und "unpublish" erhalten, welche ganz einfach so aussehen:
PHP-Code:
public function publish($id) {
    
$this->updateByCondition(
        array(
            
$this->primary => $id
            
'published'    => 0
        
), 
        array(
            
'published' => 1
            
'modified'  => date('Y-m-d H:i:s')
        )
    );

Das erste Array gibt die Bedingung an, das zweite die Felder und Werte, die aktualisiert werden sollen.
So reduziert sich ein reines veröffentlichen von Bildern im Controller auf:
PHP-Code:
$imageModel->publish($request->getParameter('id')); 
Der Parameter 'id' kann hier eine einzelne Id oder ein Array von Ids sein.
Andernfalls müsste man im Controller stets die korrekte Bedingung mit angeben und dafür sorgen, dass das Feld 'modified' ebenfalls aktualisiert wird.

Aber hier stellt sich eine grundsätzliche Frage, welcher jeder für sich beantworten muss: Fat-Models oder Fat-Controller?
Ich tendiere zu Fat-Models.

Zitat:
Zitat von David Beitrag anzeigen
Ist auf jedenfall schöner als wenn man jeden einzelen Query selbst zusammenschraubt.
So sehe ich das auch, wobei man aber natürlich auch mit Perpared-Statements arbeiten kann.
Als ich mit meiner DbQuery-Klasse angefangen habe gab es dies in der heutigen Form in PHP aber noch nicht bzw. nur als Extra-Modul und mittlerweile habe ich mich an meine Klasse gewöhnt.
Mit Zitat antworten
Sponsored Links