Frage

Ich habe jetzt ein paar Monate Kohana benutzen, und bin noch relativ neu auf den MVC-Stil Code / Präsentation / db-Schicht zu organisieren. Leider, während viele der Dokumentation gibt es, wie einen Controller zu erstellen, eine Ansicht etablieren und mit einem db über ein Modell interagieren, habe ich nicht viele Ressourcen gefunden, die mit sauberen beschäftigen, und schlug vor, Entwicklungsmuster.

Lassen Sie mich ein kurzes Beispiel geben:

Ihr jüngstes Projekt hat einen Controller, weil ich nicht sicher bin, ob ich viel mehr als das machen sollte ... oder wenn ich soll einen neuen machen. Wie genau kann ich feststellen, wenn ein neuer Controller benötigt wird, zusammen mit, wenn ein neues Modell benötigt wird?

Andere Tipps

Die Regel Daumen ist wie folgt: wenn ich eine neue Art von „Punkt“, dass mein App zu identifizieren. muss verwalten, frage ich mich selbst diese Fragen:

(1) Werden Gegenstände dieser Art hartnäckig sein?

(2) Werden zu viele Instanzen dieses Artikels sein?

Wenn die Antwort auf beide Fragen positiv Ich schließe daraus, dass das Element ein Modell (oder Modell-Element oder Domain-Klasse, abhängig von der Terminologie des MVC-Framework) sein sollte. Wenn ich ein neues Modellelement definieren definiere ich auch einen Controller dafür, dass die vier Grundoperationen unterstützen. Erstellen, Abrufen, Aktualisieren, Löschen (es wahrscheinlich, dass Ihr Rahmen einen Standard-Controller für Sie generieren kann)

Sie können eine Kopie von Martin Fowler erhalten möchten 'Patterns of Enterprise Application Architecture'. Die Webpräsentation Abschnitt spricht ausführlich darüber, wie Sie Ihren Code zu strukturieren, wenn ein Front Controller-driven-Framework, wie jeder von der aktuellen Welle von MVC-Frameworks.

Ich mag kleine Controller mit einer klar definierten Funktion oder eine Reihe von Funktionen. Das bedeutet in der Regel einen Controller pro Seite (oder eine Reihe von ähnlichen Seiten). In meiner Kohana Website CSSMySite Ich habe über, Blog, Kontakt, CSS und Post-Controllern.

das Alles über Controller tut, ist die Vorlage eingestellt. Der Blog-Controller interagiert mit dem Blog-Modell mehrere Beiträge aus der Datenbank aufzulisten. Der Post-Controller interagiert mit dem Blog-Modell einen Beitrag aus der Datenbank angezeigt werden soll.

Jedes Mal, wenn ich Daten, die persistent ist (Blog-Posts) oder mehrfach verwendet (Liste der Staaten für eine Dropdown-Box), geht es in das Modell. Modelle können durch verschiedene Controller zugegriffen werden, so dass es keine Eins-zu-Eins-Abbildung des Modells Controller sein muss.

Vielleicht ein guter Weg, um gute MVC-Programmierung zu lernen, ist einige Zeit in Ruby-on-Rails zu verbringen. Ich begann nun Schienen eine Weile zurück, und als indirekte Folge ich glaube, ich habe ein sehr gutes Verständnis von MVC verwenden. Ich sehe Schienen als Inbegriff von MVC. Zumindest könnte es eine unterhaltsame Art und Weise zu lernen MVC sein ... was denkt YA'LL?

Hier ist ein Beispiel dessen, was ich in meiner Kohana app getan.

Ich brauchte einen 'neueste Nachrichten' Abschnitt, so dass ich einen Controller, Modell und Ansicht auf dem Titel 'news'.

Meine Nachrichten Controller hatte Methoden index(), feed() und media_releases().

Mein Modell bestand aus db-Abfragen, die meine Nachrichten-Daten aus einer MySQL-Datenbank zu erhalten.

Und meiner Meinung nach ist nur eine Menge von HTML mit einigen <?php echo $title; ?> und dergleichen.

Gibt es einen Grund, warum Sie nicht ein generischen Systeme definieren, die global arbeiten Datenbank-Metadaten levaraging? Es scheint mir, im Allgemeinen überhaupt das Schreiben von Code einfach auf Daten zuzugreifen und zeigt eine unnötige Redundanz ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top