studyklar
IProg · Klausur 3 · Aufgabe 5

MVC mit PHP: Reiseanträge verwalten

Eine kleine Web-Anwendung für Reiseanträge soll nach dem Muster MVC gebaut werden. Gefragt ist kein Code, sondern ein Plan: welche Ordner, welche Dateien, wofür. Rechts wächst der Ordnerbaum Schicht für Schicht. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

5) MVC mit PHP (12 Punkte)

Folgende kleine Web-Anwendung zur Personalverwaltung soll auf Basis von PHP und Smarty als MVC Anwendung entwickelt werden:

Nach einer Anmeldung, die durch einen Zugriff auf die Tabelle USER überprüft wird, werden die Daten der Reiseanträge der Mitarbeiter aus der Tabelle REISEN dem Sachbearbeiter präsentiert. Dieser kann dann einen Antrag zur Detailanzeige in den Bearbeitungsmodus nehmen. Nach dem Speichern seiner Änderungen erhält er wieder die Übersicht angezeigt.

Machen Sie einen sinnvollen Vorschlag für die notwendigen Dateien und Verzeichnisse. Geben Sie für jede Datei und jedes Verzeichnis eine kurze Beschreibung, mit ihrer Aufgabe an.

Es ist kein Programmcode erforderlich!

Ein Sachbearbeiter meldet sich an, sieht alle Reiseanträge, öffnet einen zum Bearbeiten und speichert. Die Daten liegen in zwei Tabellen: USER (Benutzer) und REISEN (Anträge).

Gesucht ist eine Liste der Ordner und Dateien, je mit einer kurzen Beschreibung. Für 12 Punkte zählt, dass jede Schicht von MVC ihren Ort hat und keine Datei für einen Ablauf fehlt.

Merke: Jede Datei gehört genau einer Schicht an. Wer eine Datei nicht einordnen kann, hat meist zwei Aufgaben in einer Datei vermischt.

Hinweis zur Musterlösung: Sie nennt die Ordner template/ und template_c/, den Ordner für das Model db/. Hier stehen die Namen aus dem Skript, templates/ und templates_c/ (mehr in Schritt 5), und model/ wie in Klausur 2, Aufgabe 4.

  1. MVC in drei Sätzen.
  2. Aus dem Text die Abläufe, Tabellen und Seiten sammeln.
  3. Model: Ordner model/ mit einer Klasse je Tabelle.
  4. View: Templates und statische Dateien.
  5. Controller: je Bereich eine Steuerdatei.
  6. Mit einem Durchlauf prüfen, ob nichts fehlt.

MVC: drei Schichten

SchichtAufgabehier umgesetzt mit
ModelDaten lesen und schreibenPHP-Klassen
ViewSeiten darstellenSmarty-Templates, HTML
ControllerAbläufe steuernPHP-Skripte

MVC (Model, View, Controller) teilt eine Anwendung in drei Schichten mit je einer Aufgabe:

  • Model: der Zugriff auf die Daten, hier die Datenbank.
  • View: die Darstellung, also das, was der Benutzer sieht.
  • Controller: die Steuerung. Er nimmt eine Anfrage an, holt Daten über das Model und gibt sie an die View.
Aus Skript 07, Folie 3: Model: Datenzugriffsschicht. View: Darstellungsschicht. Controller: Steuerungsschicht, reagiert auf Interaktionen.

Für die View nimmt die Aufgabe Smarty: eine Template-Engine. Eine Seite steht dort als Vorlage (Template, Datei .tpl) mit Platzhaltern, die Smarty mit Daten füllt.

Was der Text verlangt

aus dem Textbraucht
Tabellen USER und REISENje eine Zugriffsklasse
Anmeldung, Übersicht, Bearbeitenje eine Seite
Anmelden, Bearbeiten, SpeichernSteuerung

Der Text nennt vier Abläufe: Anmelden, Übersicht zeigen, einen Antrag bearbeiten, Speichern. Daraus folgt, was wir brauchen:

  • zwei Tabellen, USER und REISEN, also Zugriff auf beide (Model);
  • drei Seiten: Anmeldung, Übersicht, Bearbeiten (View);
  • jemanden, der die Abläufe verbindet (Controller).
Noch 9 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

Seitewas passiert
1AnmeldungKennung und Passwort gegen Tabelle USER prüfen
2Übersichtalle Reiseanträge aus Tabelle REISEN zeigen
3Bearbeiteneinen Antrag im Detail zeigen und ändern
4SpeichernÄnderung in REISEN schreiben, zurück zu 2
LegendeDer Ablauf der Anwendung, wie ihn die Aufgabe beschreibt.