faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:start [09.06.2021 17:27] – [Plugin-Konfiguration] sbelfaecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:start [21.06.2021 15:34] (aktuell) – [Datenbank-Klasse] sbel
Zeile 37: Zeile 37:
      * @return object       DB-Handle       * @return object       DB-Handle 
      */      */
-    function mysqldb($dbusername, $dbpassword, $dbname, $host="localhost" ) {+    function __construct($dbusername, $dbpassword, $dbname, $host="localhost" ) {
  
     try {     try {
Zeile 48: Zeile 48:
     }     }
  
-    return $pdo;+    $this->connection=$pdo;
  
     }     }
Zeile 84: Zeile 84:
 </code> </code>
  
-  * Ergänze innerhalb der ''render''-Methode Code, der eine Datenbanlk Verbindung erzeugt. +  * Ergänze innerhalb der ''render''-Methode Code, der eine Datenbank Verbindung erzeugt. 
   * Mache dir klar, welche Funktion das dabei erzeugte Objekt ''$dbhandle'' im weiteren Verlauf des Programms hat.   * Mache dir klar, welche Funktion das dabei erzeugte Objekt ''$dbhandle'' im weiteren Verlauf des Programms hat.
   * Teste, was passiert, wenn du eine falsches Benutzer/Passwort-Kombination, eine nicht existente Datenbank oder einen anderen Host als ''localhost'' angibst.   * Teste, was passiert, wenn du eine falsches Benutzer/Passwort-Kombination, eine nicht existente Datenbank oder einen anderen Host als ''localhost'' angibst.
  
 <code> <code>
-$dbhandle = new mysqldb("DBUSER", "dbuserPASS", "DBNAME");+$mydb = new mysqldb("DBUSER", "dbuserPASS", "DBNAME");
 </code> </code>
  
Zeile 107: Zeile 107:
 {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:conf.png |}} {{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:conf.png |}}
  
-Wenn wir jetzt also unser Plugin durch DokuWiki "konfiguroerbar machen wollen, müssen wir drei Fragen beantworten:+ 
 +Wenn wir jetzt also unser Plugin durch DokuWiki "konfigurierbar machen wollen, müssen wir drei Fragen beantworten:
  
   - Welche Optionen brauchen wir und was müssen wir diesbezüglich in die Datei ''metadata.php'' schreiben?   - Welche Optionen brauchen wir und was müssen wir diesbezüglich in die Datei ''metadata.php'' schreiben?
Zeile 113: Zeile 114:
   - Wie können wir im Quelltext des Plugins auf die Werte unserer Konfigurationsoptionen zugreifen?   - Wie können wir im Quelltext des Plugins auf die Werte unserer Konfigurationsoptionen zugreifen?
  
-Die Optionen liegen auf der Hand: DB-Username, DB-Passwort, DB-Name und DB-Host. Sinnvolle Vorgabewerte sind "leer", außer beim DB-Host, da dürfte ''localhost'' Sinn machen. Alle Optionen sind als Zeichenketten einzugeben.+Die **Optionen** liegen auf der Hand: DB-Username, DB-Passwort, DB-Name und DB-Host. Sinnvolle **Vorgabewerte** sind "leer", außer beim DB-Host, da dürfte ''localhost'' Sinn machen. Alle Optionen sind als Zeichenketten einzugeben.
  
 In den Dateien ''default.php'' und ''metadata.php'' stellt sich das dann wie folgt dar (zunächst nur für den DB-Usernamen): In den Dateien ''default.php'' und ''metadata.php'' stellt sich das dann wie folgt dar (zunächst nur für den DB-Usernamen):
Zeile 121: Zeile 122:
 </code> </code>
  
-<code php metadata.php>+<code php default.php>
 $conf['dbusername'] = ''; // leerer String $conf['dbusername'] = ''; // leerer String
 </code> </code>
  
 +Die vollständige Entwicklerdokumentation findet sich [[https://www.dokuwiki.org/devel:configuration|hier]], dort kann man auch die unterschiedlichen Konfigurationstypen für die ''metadata.php'' nachschlagen.
 +
 +Zugriff auf die Werte der Plugin-Optionen erfolgt mit 
 +
 +<code php>
 +$dbuser = $this->getConf('dbusername');
 +</code>
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) ===
 +
 +Füge die Informationen aus dem vorigen Abschnitt deinem Plugin hinzu und mache auf diese Weise den Datenbankbenutzer konfigurierbar. 
 +
 +Teste die Änderungen, indem du den Konfigurationsmanager öffnest: 
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:auswahl_388.png?500 |}}
 +Dort sollte es jetzt einen Abschnitt für das Plugin ''projekt'' geben, in dem die Plugin-Optionen angezeigt werden.
 + 
 +{{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:auswahl_389.png?500 |}}
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:projekt:dokuwiki_plugin:dbklasse:auswahl_390.png?500 |}}
 +
 +
 +Trage deinen DB-Benutzernamen dort ein und speichere die Einstellungen.
 +
 +Modifiziere dann deine ''syntax.php'' so, dass der Datenbankbenutzer, der dem Konstruktor der DB-Klasse übergeben wird, aus den Einstellungen ausgelesen wird.
 +
 +Teste, ob die Datenbankverbindung immer noch ordnungsgemäß zustande kommt.
 +
 +Ergänze die weiteren Optionen für Passwort, Datenbankname und Datenbankhost, konfiguriere das Plugin mit den Werten, die für deinen Benutzer passen und teste die Verbindung erneut.
 +
 +++++ Hilfestellung |
 +In der ''syntax.php'' kann das in etwa so aussehen - die Optionsnamen können natürlich abweichen, je nachdem wie du diese benannt hast.
 +<code php>
 + // get settings
 + $dbuser = $this->getConf('dbusername');
 + $dbpasswd = $this->getConf('dbpasswd'); 
 + $dbname = $this->getConf('dbname');
 + $dbhost = $this->getConf('dbhost');
 + //make db connection
 + $dbhandle = new mysqldb($dbuser, $dbpasswd, $dbname, $dbhost);
 +</code>
 +++++
  
 ==== Modellierung - fällt aus ==== ==== Modellierung - fällt aus ====
  • faecher/informatik/oberstufe/datenbanken/projekt/dokuwiki_plugin/dbklasse/start.1623259657.txt.gz
  • Zuletzt geändert: 09.06.2021 17:27
  • von sbel