Das Projekt kann grob in zwei Teile gegliedert werden. Zu einem gibt es das Eingabeformular, in dem, mit dynamischen Fehlermeldungen, die Dokumentation einer PHP-Funktion erfolgen kann. Zu anderem gibt es die Suche, in der anhand des Funktionsnamens und der Funktioneigenschaften nach der Dokumentation gesucht werden kann. All dies wird von einer MariaDB Datenbank gestützt.
Das Eingabeformular erfüllt die folgenden Anforderungen:
- Client- und serverseitige Überprüfung von Funktions- und Variablennamen mit entsprechender Fehlermeldung.
- Client- und serverseitige Überprüfung der Eindeutigkeit von Parameternamen mit entsprechender Fehlermeldung.
- Client- und serverseitige Überprüfung der Existenz von Beschreibungen mit entsprechender Fehlermeldung.
- Automatisches Einfügen der Felder für die Funktionseigenschaften aus der Datenbank.
- Serverseitige Überprüfung der Korrektheit der Boxen.
- Dynamische Erweiterung und Verkleinerung des Formulars für die Parameter.
- Setzen von Standardtypen für Argumente und Rückgabewerte.
- Setzen der Nullbarkeit von Argumenten.
- Setzen von Argumenten als Referenz.
- Erzwingen der Best-Practice bezüglich Standardwerte durch Kontrolle der Eingabefelder und serverseitiger Überprüfung.
- Client- und serverseitige Überprüfung der Existenz von Standardwerten mit entsprechender Fehlermeldung.
- Interaktive Vorschau.
- Automatisches Scrollen der Vorschau zu Änderungen.
- Asynchrone Verarbeitung des Formulars.
Die Suche erfüllt die folgenden Anforderungen:
- Automatisches Einfügen der Felder für die Funktionseigenschaften aus der Datenbank.
- Serverseitiges Finden der Ergebnismenge entsprechend den Eingaben unter Ausschluss des Funktionsnamens.
- Clientseitiges Verwerfen und Sortieren der Ergebnisse anhand des Funktionsnamens mit einer Fuzzy-Suche.
- Anzeigen des Funktionsnamens und der Kurzbeschreibung der Ergebnisse.
- Automatisches Anzeigen der vollständigen Dokumentation des besten Ergebniss.
- Anzeigen der vollständigen Dokumentation eines beliebigen Ergebnisses durch Anklicken.
- Asynchrone Verarbeitung der Suche.
Zusätzlich wird jede Änderung, die über das Eingabeformular vorgenommen wird, in der Datenbank mit Datum und IP-Adresse protokolliert. Ein Datenbankadministrator kann diese Änderungen unabhängig voneinander einfach rückgängig machen. Zum Testen können daher beliebige Daten eingegeben werden.