Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:microblogging:step01:start [20.06.2021 14:54] – [Automatisches Laden benötigter Klassendefinitionen] sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:microblogging:step01:start [24.06.2021 09:52] (aktuell) – sbel | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
* Benutzer sollen die Liste ihrer Einträge angezeigt bekommen. | * Benutzer sollen die Liste ihrer Einträge angezeigt bekommen. | ||
- | ===== Datenbankmodell: ===== | + | ===== Ein erstes |
Ein einfaches Datenbankmodell könnte zunächst so aussehen: | Ein einfaches Datenbankmodell könnte zunächst so aussehen: | ||
Zeile 20: | Zeile 20: | ||
Erstelle Tabellen in deiner Datenbank, die dieses Modell abbilden. | Erstelle Tabellen in deiner Datenbank, die dieses Modell abbilden. | ||
- | ===== Objektorientierter Datenbankzugriff reloaded | + | ===== Mehr Klassen bitte ===== |
Wenn man nun über die OOM unseres Projekts nachdenkt, macht es zunächst Sinn, dass man zwei Klassen verwenden möchte: | Wenn man nun über die OOM unseres Projekts nachdenkt, macht es zunächst Sinn, dass man zwei Klassen verwenden möchte: | ||
Zeile 36: | Zeile 36: | ||
* Warum könnte das das hinsichtlich der Erweiterbarkeit des Projekts ungeschickt sein, so zu beginnen? | * Warum könnte das das hinsichtlich der Erweiterbarkeit des Projekts ungeschickt sein, so zu beginnen? | ||
- | ==== Refactoring des bisherigen Beispielplugins ==== | + | ===== Refactoring des bisherigen Beispielplugins |
Um deinen Plugin-Code besser zu strukturieren und auf die kommenden Anpassungen vorzubereiten, | Um deinen Plugin-Code besser zu strukturieren und auf die kommenden Anpassungen vorzubereiten, | ||
Zeile 46: | Zeile 46: | ||
</ | </ | ||
- | * Lege ein Unterverzeichnis '' | + | * Lege ein Unterverzeichnis '' |
* Verschiebe die Datei mit deiner Datenbank-Klasse in diesen Ordner und benenne sie um in '' | * Verschiebe die Datei mit deiner Datenbank-Klasse in diesen Ordner und benenne sie um in '' | ||
* Passe das '' | * Passe das '' | ||
Zeile 73: | Zeile 73: | ||
// Wenn eine Klasse oder ein Interface noch nicht existiert | // Wenn eine Klasse oder ein Interface noch nicht existiert | ||
- | // soll verucht | + | // soll versucht |
if(!class_exists($class) or !interface_exists($class)) | if(!class_exists($class) or !interface_exists($class)) | ||
{ | { | ||
Zeile 85: | Zeile 85: | ||
}); | }); | ||
</ | </ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | |||
+ | Ersetze das Include-Statement durch den Code oben und versuche zu verstehen, was dieser macht. | ||
+ | |||
+ | Teste ob der Code tatsächlich automatisch Klassendateien nachlädt, indem du einen Fehlerfall, erzeugst: versuche dazu ein Objekt zu erzeugen, für das es keine Klassendefinition gibt, beispielsweise '' | ||
+ | |||
+ | ---- | ||
+ | [[{}..: | ||
+ | ---- | ||
+ | |||
+ | |||
+ |