Schritt 1: Grundfunktionalität

Zunächst soll die Grundfunktionalität implementiert werden:

Benutzer sollen Einträge erstellen können.

Benutzer sollen die Liste ihrer Einträge angezeigt bekommen.

Datenbankmodell:

Ein einfaches Datenbankmodell könnte zunächst so aussehen:

(A1)

Erstelle Tabellen in deiner Datenbank, die dieses Modell abbilden.

Objektorientierter Datenbankzugriff reloaded

Wenn man nun über die OOM unseres Projekts nachdenkt, macht es zunächst Sinn, dass man zwei Klassen verwenden möchte:

bloguser.class.php: Alle Operationen, die die Benutzer betreffen. Vor allem „erbt“ unser Blog die Benutzer des DokuWiki Systems, d.h. wenn ein Benutzer zum erstem Mal einen Eintrag verfassen möchte, muss dieser wenn nötig zunächst der Benutzertabelle des Blogs hinzugefügt werden.

blogentry.class.php: Alle Operationen, die die Blogeinträge betreffen.

Beide Klassen müssen auf die Datenbank zugreifen.

(A2)

Könnte man für die Grundfunktionalität auch mit einer Datenbanktabelle und einer Klasse auskommen?

Warum könnte das das hinsichtlich der Erweiterbarkeit des Projekts ungeschickt sein, so zu beginnen?

Refactoring des bisherigen Beispielplugins

Um deinen Plugin-Code besser zu strukturieren, gehe wie folgt vor:

Committe deine aktuellen Änderungen, so dass dein Arbeitsverzeichnis sauber ist. Erzeuge dann einen neuen Branch mit dem Befehl git checkout -b „microblog“. Schau dir das Ergebnis mit dem Befehl git branch an, es sollte in etwa so aussehen:

<html> <script id=„asciicast-qUmzyNi9H9FKQQNdux5xraFEE“ src=„https://asciinema.org/a/qUmzyNi9H9FKQQNdux5xraFEE.js“ async></script> </html>

Lege ein Unterverzeichnis classes im Plugin-Ordner an.

Verschiebe die Datei mit deiner Datenbank-Klasse in diesen Ordner und benenne sie um in mysqldb.class.php

Passe das include Statement in der syntax.php entsprechend an.