PHP Struktur - PHP Quiz Script (Teil 3)

Umsetzung des Online Quiz in PHP

In diesem Abschnitt werde ich auf die notwendigen PHP-Klassen zu sprechen kommen, die für ein Quiz notwendig sind.

PHP und Objektorientiert programmieren

Objektorientiere Programmierung ist schon was feines, da man mit diesem Hilfsmittel in der Lage ist, komplexe Strukturen sehr übersichtlich zu kapseln. Selbst mit PHP sollte diese Programmiertechnik verfolgt werden. Gut einige Dinge kann man noch sehr schwer umsetzen, aber der Trend geht ganz klar dort hin.

Ich möchte hier nicht unmittelbar noch einmal die Grundbegriffe klären, deswegen hier eine kleine Referenz zur PHP-OOP.

Welche Klassen braucht das PHP-Quiz?

Das folgende Schema zeigt vereinfacht die notwendigen Klassen für das PHP Skript.

Klassen zur Verwaltung der Quizfrage und deren Antworten

Das folgende Klassendiagramm zeigt die Kernbereiche des Online Quiz. Zum Einen gibt es die Klasse item, welche unteranderem die Menge an Choice-Objekten aufnehmen kann. Für die spätere Auswertung der Antworten unterscheiden wir bei der Choice-Klasse noch die correctResponse und usrResponse. Die correctResponse beinhaltet auf jeden Fall die richtige Antwort und die usrResponse die Antwort, die der Spieler gegeben hat.

PHP Quiz -  Schema für die Quizfragen

Klassen zur Verwaltung der Online Spiel Sitzungen

Um den Spielverlauf zu managen gibt es bekanntlich verschiedene Möglichkeiten. Eine relativ gute und zudem sichere Variante umfasst das Speichern des Spielverlaufs in einer Sitzung. Die Sitzung ist in zwei Bereiche unterteilt, d.h. das gesamte Spiel für einen Spieler wird in einer testSession abgespeichert. Innerhalb des Spiels, also zu dem Zeitpunkt wo eine direkte Frage gespielt wird, wird eine weitere Sitzung aufgebaut. Wir nennen diese hier mal itemSession .

PHP Quiz - Game-Session Verwaltung

Es gibt zwei Vorteile für die Behandlung der Sitzungen auf diese Art und Weise. Zum Einen kann man explizit sicher stellen, dass eine Frage zu einer TestSession nur einmal gespielt wird. Des Weiteren kann man dem Nutzer noch nützliche Daten zum Spielverlauf liefern.

Klassen für die Zuweisung und Auswertung

Der letzte notwendige Bereich für ein einfaches Quiz ist die Zuweisung und Auswertung der Fragen.

Für die Zuweisung einer Quiz-Frage soll die deliveryEngine zuständig sein. Hierbei wird die testSession übergeben und anhand dessen unter der einzelnen itemSessions wird geprüft, welche Fragen noch zu spielen sind. Existieren noch Fragen, dann wird über die Methode delivery ein Item-Objekt zurück gegeben. Tritt der Fall ein, dass der Spieler mit allen Fragen durch ist, wird ein null-Wert zurück gegeben.

PHP Quiz - Zuweisung und Auswertung von Quizfragen

Jede abgegebene Antwort sollte auch kontrolliert werden :). Diese Aufgabe kann mit Hilfe der responseProcessing Klasse realisiert werden.

PHP Quiz - Auswerten der Quizfrage

Dem responseProcessing-Objekt braucht man nur das aktuelle item und ein Objekt des usrResponse übergeben. Die Methode solve konntrolliert die Benutzer-Antwort mit der tatsächlichen richtigen Antwort. Liegt eine Übereinstimmung vor, so erhält der Spieler einen Punkt.