2 Stimmen

Strukturierung von Modellen im MVC-Framework?

Ich frage mich, ob es eine beste Praxis für diese, ich baue eine Website, die ziemlich viele Modelle erfordern wird, und ich will nicht mit einem unstrukturierten Chaos zu beenden. Im Grunde suche ich nach einem guten Regelwerk, um die Modelle zu strukturieren. Im Moment fallen mir nur zwei Möglichkeiten ein:

  • Jede Tabelle in der Datenbank hat ihr eigenes Modell, z. B. accounts.php, books.php usw.
  • Ein Modell stellt eine Sammlung von Methoden dar, die sich auf ein Kernmodul der Website beziehen, z. B. ein Login-Modell, das Methoden wie Login, Logout usw. enthält, ein Modell, das Sitzungen verwaltet, ein Modell, das Cookies verwaltet

Vielen Dank für Ihre Zeit!

4voto

Bill Karwin Punkte 493880

I vorschlagen dass Modell != Tabelle im Allgemeinen.

Stattdessen stellt ein Modell eine Komponente der Domänenlogik Ihrer Anwendung dar. Diese könnte manchmal eins-zu-eins einer Datenbanktabelle entsprechen, aber es kann auch sein, dass ein Modell aus mehreren Datenbanktabellen oder gar keinen Datenbanktabellen besteht. Und einige Modelle könnten aus einer Sammlung anderer Modelle bestehen. Auch können einige Tabellen in mehreren Modellklassen verwendet werden.

Die Eins-zu-Eins-Beziehung zwischen Modellen und Tabellen ist für die Vereinfachung von Anwendungen attraktiv, aber es ist eine Art der Kopplung, die irreführend sein kann.

In MVC sind der Controller und die View relativ einfach und überschaubar. Sie entsprechen der Handhabung Eingabe und erzeugen sortie . Das Modell ist schwierig, denn dies ist der Rest Ihrer Anwendung Daten und Logik . Willkommen bei OO Design und Architektur!

Eine gute Quelle, um zu lernen, wie man Modelle effektiv gestaltet, ist Bereichsbezogener Entwurf von Eric Evans, oder die kostenlose Online-Kurzfassung, Domänenorientiertes Design - schnell .

2voto

Gordon Punkte 304254

Diese Frage ist nicht leicht zu beantworten. Werfen Sie einen Blick auf einige meiner Antworten auf ähnliche Fragen

für einige Ideen. Aber im Grunde beziehen sich all diese hauptsächlich auf Muster der Anwendungsarchitektur von Unternehmen Sie können also genauso gut mit ihnen abkürzen.


Ich kennzeichne dies als Community-Wiki, da es sich nur auf einige Antworten bezieht. Sie können gerne anstelle dieser Antwort über diese abstimmen.

1voto

Timothy Baldridge Punkte 10139

Das Modell pro Tabelle ist bei weitem die häufigste Methode. Und meiner Meinung nach auch die sauberste. Ihre zweite Methode wird in einem unstrukturierten Durcheinander enden.

Aber ich glaube, am Ende werden beide gleich sein. Denn Sie werden wahrscheinlich nur eine Tabelle im Sitzungsmodell und eine im Anmeldemodell usw. berühren.

1voto

TomWilsonFL Punkte 493

Eine ORM wie Doktrin kann eine große Hilfe sein, wenn es darum geht, Ordnung zu halten, aber es bedeutet auch zusätzlichen Aufwand.

Denken Sie nur daran, dass das Modell der einzige Teil Ihrer MVC-Struktur sein sollte, der mit der Datenbank kommuniziert und die zentrale Geschäftslogik enthält. Solange Sie sich an diese Regel halten, sind Sie auf dem richtigen Weg.

1voto

antpaw Punkte 14474

Das einzige, was zu einem Chaos in Ihrem Modellordner führen kann, ist, wenn Ihre Anwendung immer größer wird und Ihr Framework Ihnen nicht erlaubt, die Modelle in Unterordnern zu strukturieren, oder Sie dies nicht getan haben.

Probieren Sie ORM aus. Es hat sehr strenge Regeln, so dass Sie in Ihrer Struktur nicht viel falsch machen können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X