MVC Pattern
- GameOver
- User
Guten Abend,
interessiere mich nun schon seit einer Weile für das MVC-Pattern, nur treten da einige Verständnisprobleme auf.
Wieviel Controller verwendet man bei einer Webandwendung, wo man sich zB einloggen kann?
Angenommen, 3 interne Seiten (Übersicht, Mitglieder, Chat) sind durch einen login geschützt.
Brauchen würde ich laut Front Controller bzw MVC folgende Scripte:
index.php
login.php (Login)
overview.php (Übersicht)
member.php (Mitglieder)
chat.php (Chat)
In der index.php überprüfe ich einfach ob eine Session Id vorhanden ist, wenn ja, wird ein Objekt von pageHandling erzeugt, ansonsten wird login.php eingebunden:
-index.php-
<?php
if(!$_SESSION['user']['userID'])
require 'login.php';
else
$pageHandling = new pageHandling($_GET['modul'], $_GET['action']);
?>
Die login.php Datei oder das Script, welches ich in den internen Bereich einbinde, wäre der Controller!?
In der login.php binde ich ein HTML-Login Formular (zB eine .tpl Datei) (wäre das View vom MVC ??) ein.
Außerdem wird in die login.php eine User Klasse eingebunden, die zB Methoden für Login und Logout enthält (wäre dass das Model ??).
zuürck zu index.php:
Existiert eine Session Id, erstelle ich eine neues Objekt von einer "pageHandling" Klasse, die einfach nur überprüft, ob und welche Parameter in der Adresszeile aufgerufen wurden. Es soll zB eine modul-Parameter existieren, welcher zB den wert "overview", "member" oder "chat" haben kann. Den übergebe ich beim instanzieren des Objektes. Im Objekt rufe ich nun den entsprechenden Controller (also zB overview.php, chat.php, member.php) auf. Somit ist das Objekt "pageHandling" eine Art Eltern-Controller, welcher weitere Controller einbindet?
Was gibt es den da Büchermäßig für Desing Patterns speziell für MVC zu empfehlen (schonend erklärt :-))?
Grüße
Nico
MC-Web
- Ultima
- Admin
- Website
Hallo Nico,
bei Wikipedia findest du das ganze gut erklärt, extra ein Buch kaufen würde ich dafür nicht.
Eigentlich übernimmt der Controller nur die Steuerung, das Model speichert und lädt Daten und der View zeigt die Informationen einfach nur an. Der View generiert eigentlich nur HTML Code.
login.php (Login)
overview.php (Übersicht)
member.php (Mitglieder)
chat.php (Chat)
Ich würde für alle jeweils einen Controller erstellen und ein Model. Wenn eine Komponente sehr Umfangreich ist kann man den Controller noch aufsplitten und für jeden View einen Controller schreiben.
Viele Grüße Thomas
Admin of Ultima-Project.net