Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:start [09.06.2021 09:27] – [Modellierung - fällt aus] sbel | faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Verbindung zur Datenbank: Eine Datenbankklasse ====== | ||
- | |||
- | ===== Objektorientiertes PHP ===== | ||
- | |||
- | Anders als Java erzwingt PHP nicht, dass der Anwender objekorientiert programmiert, | ||
- | |||
- | <code php> | ||
- | class syntax_plugin_projekt extends DokuWiki_Syntax_Plugin | ||
- | { | ||
- | [...] | ||
- | } | ||
- | </ | ||
- | |||
- | ===== Datenbank-Klasse ===== | ||
- | |||
- | Wir lagern nun den Zugriff auf die mysql-Datenbank in eine eigene Klasse aus. | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Erstelle eine Datei '' | ||
- | |||
- | <code php mysqldb.php> | ||
- | <?php | ||
- | |||
- | class mysqldb { | ||
- | |||
- | /** | ||
- | * Constructor: | ||
- | * | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | * @param string | ||
- | * | ||
- | * @return object | ||
- | */ | ||
- | function mysqldb($dbusername, | ||
- | |||
- | try { | ||
- | $pdo = new PDO(" | ||
- | $pdo-> | ||
- | |||
- | } catch ( PDOException $e ) { | ||
- | echo ' | ||
- | return FALSE; | ||
- | } | ||
- | |||
- | return $pdo; | ||
- | |||
- | } | ||
- | } | ||
- | |||
- | ?> | ||
- | |||
- | </ | ||
- | |||
- | Wenn man ein neues '' | ||
- | |||
- | Damit wir mysqldb-Objekte (und später vielleicht weitere Objekte) nutzen können müssen uns klar machen, wer in unserem Plugin die Rolle der " | ||
- | |||
- | {{ : | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | Binde im Kopf der Datei '' | ||
- | |||
- | <code php> | ||
- | [...] | ||
- | // must be run within Dokuwiki | ||
- | if (!defined(' | ||
- | die(); | ||
- | } | ||
- | |||
- | // Klassendateien einbinden | ||
- | require(" | ||
- | |||
- | class syntax_plugin_projekt extends DokuWiki_Syntax_Plugin | ||
- | { | ||
- | [...] | ||
- | </ | ||
- | |||
- | * Ergänze innerhalb der '' | ||
- | * Mache dir klar, welche Funktion das dabei erzeugte Objekt '' | ||
- | * Teste, was passiert, wenn du eine falsches Benutzer/ | ||
- | |||
- | < | ||
- | $dbhandle = new mysqldb(" | ||
- | </ | ||
- | |||
- | ==== Modellierung - fällt aus ==== | ||
- | |||
- | Eigentlich sollte man sich an dieser Stelle überlegen, wie man seine Problemstellung (objektorientiert) modellieren möchte, das fällt uns etwas schwer, weil wir noch keine Problemstellung haben. Ein paar Überlegungen kann man an dieser Stelle dennoch anstellen. | ||
- | |||
- | Eine grundlegende Frage könnte z.B. sein, wie man die '' | ||
- | |||
- | Wir entwickeln zunächst weitere Methoden innerhalb unserer mysqldb-Klasse - wenn sich unsere Problemstellung konkretisisert können wir im Zuge eines Code-Refactoring weitere Aufteilungen und Modellierungsschritte vornehmen. | ||
- | |||