Announcement

Collapse
No announcement yet.

MVC - Für was eigentlich Controller?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MVC - Für was eigentlich Controller?

    Hallo,
    man liest des öfteren bei MVC-Dokumentationen, daß der Controller "as thin as possible" sein sollte. Und...
    die eigentliche Business Logic soll in die Models rein.

    Ok - nur rein grundsätzlich gefragt:
    Würds dann nicht auch ohne Controllers gehen?

    Eigentlich fungiert doch der Webserver sowieso durch die aufgerufenen URL's als Controller und der Dispatcher in der index.php könnte eigentlich sofort die Model Methoden aufrufen.
    Also z.B. die URL http://www.example.com/cart/update könnte doch gleich die Update-Methode in der Modelklasse 'Cart' aufrufen?

    Ich lass mich gerne "erleuchten" :-)

  • #2
    "as thin as possible" ist eine sehr schwammige Definition.

    Und das die gesamte Business Logic in die Models rein soll -> kann ich leider nicht zustimmen.

    Model
    Das Model repäsentiert ja die Datenschicht: Daher create/update/delete/read, ....Operation auf die Daten (seien die Daten in einer Datenbank, Textdatei, oder etwas anderem)

    Es gibt den Ansatz "Geschäftslogik" darin zu verankern. Nur was versteht man darunter? Referenzielle Integrität? Komplizierte Mathematische Berechnungen?

    Wenn wir das letztere nehmen, nämlich die Berechnungen, dann würde ich dir klar dazu raten diese in einer extra Klasse zu implementieren (nicht in MVC).

    Controller
    Wenn das Model direkt aufgerufen wird, ohne Controller:
    * Wo nimmst du die Parameter entgegen und rufst das Model mit diesen entsprechend auf?
    * Wo machst du z.B. Berechtigungschecks, Paramterchecks, ...?
    * Wo unterscheidest du nach Paramters was/wie aufgerufen werden soll?
    * Wo renderst du eventuell zusätzliche Views?
    * ...

    Comment

    Working...
    X