📋
M307 - Interaktive Webseiten mit Form
  • Interaktive Webseite mit Formular erstellen
  • Tag 1
    • 01-Interaktive Websites
    • 02-Client-Server-Infrastruktur
    • 03 Einrichtung Entwicklungsumgebung
    • 04 PHP
      • 01 Einführung
      • 02 PHP Konfiguration
      • 03 PHP Übersicht
      • 04 Variablen
      • 05 Script Einbindung
      • 06 Arrays
      • 07 Kontrollstrukturen
      • 08 Interne Funktionen
      • 09 Benutzerdefinierte Funktionen
      • 10 Klassen
      • 11 Best Practices
      • 12 Links
    • 05 Strukturierung
      • Aufbau eines MVC (Schritt für Schritt)
    • 06 PHP Aufgaben
      • 01 Bottles of Beer
      • 02 Einfacher Spamfilter
      • 03 Clowns
      • 04 Pixelgenerator
      • 05 Todo-Liste
      • 06 Login-Funktion
      • 07 Navigation
      • 08 Gemeinsames Template
  • Tag 2
    • 01 Formulare Theorie
      • 01 Informationsgruppierung
      • 02 Design- und Strukturgrundlagen
      • 03 Verarbeiten von Formulardaten
      • 04 Validieren von Formulardaten
    • 02 JavaScript Theorie
      • 01 Einfuehrung
      • 02 JavaScript Übersicht
    • 03 Übungsaufgaben zu JavaScript
      • 01 Schere, Stein, Papier
      • 02 Whack-a-Button
    • 04 JavaScript Validierung
      • 01 Validierung
      • 02 Vor- und Nachteile
      • 03 Aufgabe
  • Tag 3
    • 01 Datenbankanbindung
      • 01 Datenbankanbindung
      • 02 Datenbankverbindung
      • 03 Datenbankabfragen
      • 05 Datenlöschung
      • 04 Datenspeicherung
      • 06 Datenmanipulation
      • 07 Refactoring
    • 02 Testing
    • 03 Security Aufgaben
      • 01 Gruppenarbeit
        • 01 Arbeitsauftrag
        • 02 Cross-Site-Scripting (XSS)
        • 03 SQL-Injections
        • 04 Local File Inclusion
      • 02 Eigenes Formular absichern
      • 03 Karl's Website
    • 04 Applikationssicherheit
Powered by GitBook
On this page
  • Das MVC-Konzept
  • Komponenten
  • Model, View, und Controller (MVC)
  • Front-Controller
  • Router
  • Das ÜK-Framework
  • index.php
  • Routes definieren
  • Controller
  • Views
  • Helpers
  • Public

Was this helpful?

Export as PDF
  1. Tag 1

05 Strukturierung

Previous12 LinksNextAufbau eines MVC (Schritt für Schritt)

Last updated 4 years ago

Was this helpful?

Selbst mit unserem relativ einfachen Tool wird sehr schnell klar, dass beim Platzieren des kompletten Codes in einem Ordner die Übersicht verloren geht.

Die Strukturierung einer Webapplikation ist ein wichtiger Bestandteil und sollte nicht vernachlässigt werden. Wie du die Applikation strukturierst, ist dir überlassen. Es gibt jedoch klare Komponenten, die jede Webapplikation besitzt und die irgendwo untergebracht werden müssen.

Das MVC-Konzept

Komponenten

Model, View, und Controller (MVC)

Ein Router delegiert eine Anfrage oft an einen Controller. Dieser verwaltet dann den Datenaustausch zwischen einem Model und einer View. Das Model dient als Schnittstelle zu einer Datenquelle (z. B. einer Datenbank). Die View dient zur Darstellung der Daten.

  • Ein Benutzer interagiert mit einer View - in dem er auf einen Link klickt oder ein Formular absendet.

  • Ein Controller bearbeitet den Benutzer-Input und übersetzt die Daten für das Model.

  • Das Model empfängt die Daten, verändert diese (schreibt sie in eine Datenbank, macht eine Kalkulation oder löscht etwas).

  • Der Controller nimmt die Daten wieder entgegen und gibt diese falls nötig an eine View weiter.

  • Die View wartet wiederum für die nächste Interaktion mit dem Benutzer.

Diese drei Komponenten werden in der für Webapplikationen sehr beliebten MVC-Architektur verwendet. Dies ist jedoch nur eine von vielen gängigen Architekturen.

Front-Controller

Als Front-Controller bezeichnen wir den «Einstiegspunkt» unserer Webapplikation. Über diesen wird jeder Seitenaufruf entgegengenommen und dann verarbeitet.

Router

Wenn der Front-Controller einen Request entgegennimmt, muss dieser herausfinden, was damit geschehen soll. Dafür wird oft ein Router erstellt. Dieser definiert, wie eine spezieifsche Anfrage/URL verarbeitet werden soll.

Das ÜK-Framework

Für den ÜK steht ein einfaches MVC-Framework zur Verfügung:

  1. Erstelle einen Ordner aufgaben in C:\xampp\htdocs\modul-307\ und extrahiere das Framework da.

  2. Ergänze später je Aufgabe die benötigten Routes-Einträge in index.php, sowie die nötigen Controller, Models und Views.

index.php

Die index.php ist der Einstiegspunkt für alle Anfragen an unser Framework. Hier wird das Framework geladen (core/bootstrap.php), $routes werden definiert und anschliessend ausgeführt.

Routes definieren

Über die $routes Variable in der index.php lassen sich beliebig viele Routes definieren:

$routes = [
    '/hallo/welt' => 'WelcomeController@index',
];

Im obenstehenden Beispiel wird beim Aufruf von http://localhost/modul-307/aufgaben/hallo/welt die index Methode auf dem WelcomeController ausgeführt.

Die Controller@Methode Schreibweise ist vom Framework vorgegeben. Der Router kann anhand dieser Schreibweise entscheiden, welche Controller-Methode aufgerufen werden soll.

Controller

Im Ordner app/Controllers werden alle Controller-Klassen abgelegt. In den einzelnen Methoden können Variablen definiert werden. Am Ende einer Controller-Methode wird üblicherweise via require eine View geladen.

<?php
class WelcomeController
{
    public function index()
    {
        $hello = 'Viel Spass beim Programmieren!';

        require 'app/Views/welcome.view.php';
    }
}

Views

Im app/Views Ordner können einzelne View-Dateien abgelegt werden. In diesen sollte nur noch sehr wenig PHP-Code vorhanden sein! Es sollten lediglich einfache if und foreach Statements verwendet werden. Aufwändigere Logik gehört in den Controller oder separate Klassen.

Helpers

In der Datei core/helpers.php gibt es ein paar nützliche Funktionen. Schaue diese an und versuche sie zu verstehen!

Public

Alle CSS, JS und Bild-Dateien gehören in den public Ordner.

()

Lade das herunter.

Zum schrittweisen Aufbau der Applikations-Struktur
Framework
Szene 1