Mammut Framework/CMS

Modular PHP system
  1. Übersicht
  2. Basis
  3. DB
  4. Logging
  5. Cache

Datenbanken

Allgemeines

Der Datenbank-Layer ders Frameworks wurde konzipiert, um portable Anwendungen zu entwickeln, die auf möglichst vielen SQL-Implementierungen ohne oder nur mit geringen Anpassungen lauffähig sind, ohne hierbei einen all zu großen Leistungsverlust zu erzeugen.

Grundlegend gibt es drei verschiedene Arten, wie Zugriffe durchgeführt werden können:

Unterstützte Systeme

Folgende Datenbanksysteme werden derzeit unterstützt (jeweils per nativer Schnittstelle und PDO):

Verbindungsaufbau

Nach dem Laden des Frameworks erhält man eine neue Datenbankverbindung durch folgenden Code:

$this->con = \Mammut\DB\DB::newInstance([DSN], [Benutzer], [Passwort]);

Der DataSourceName ist eine Art URL, welche die Datenbank angibt. Diese ist je nach Implementierung unterschied, Details finden sich meist in der Beschreibung der entsprechenden Datenbankklasse. Hier zwei Beispiele für MySQL und Microsoft SQLServer:

MySQL: 'mysqli:localhost/demodb'
SQLServer: 'mssql:localhost/demodb'
PostgreSQL: 'postgre:localhost/demodb'

Dieses Datenbankobjekt repräsentiert die Verbindung zur Datenbank und wird für alle weiteren Aufrufe benötigt.

Basisoperationen und Klassen

 

Mammt\DB\DB

Diese Klasse repräsentiert die Datenbankverbindung.

Folgende Methoden werden häufig benötigt:

Mammut\DB\Result

Diese Klasse repräsentiert Ergebnisdaten.

Folgende Methoden werden häufig benötigt:

Alle fetch*-Methoden stehen auch als fetch*List-Methode zur Verfügung, welche ein Feld aller entsprechden Datensätze zurückgibt.

Mammut\DB\Statement

Diese Klasse repräsentiert ein Prepared Statement. Die Klasse stellt identische Methoden wie ein Result zur Verfügung, um die Ergebnisdaten bereitzustellen. Hinzu kommen Methoden zur Ausführung des Statements.

Folgende Methoden werden zusätzlich häufig benötigt:

Objektbasierender Zugriff

Objektbasierende Methoden stellen die Datenbank in einer eher OOP-typischen Weise zur Verfügung.

Mammt\DB\DB

Folgende Methoden werden häufig benötigt:

Mammut\DB\Table

Repräsentiert eine Tablle der Datenbank.

$limiter entspricht einem Feld, welches als Key=>Value die ensprechenden Felder und die hierzu entsprechenden Werte beschreibt (WHERE Feld=Wert).
Folgende Methoden werden häufig benötigt:

Beispiele

Insert:

$data = new \stdClass();
$data->row1 = 'ABC';
$data->row2 = new \DateTime('1998-12-12');
$db->table('mytable')->insert($data);

SQL-Builder

Um an die jeweilige Datenbank angepasste SQL-Befehle zu erstellen stehen Entwicklern einige Hilfsklassen zur Verfügung. All diese Klassen beschreiben entsprechende SQL-Abfragen, welche durch einen Aufruf der getSql($dialect)-Methode den passenden SQL-String zurückgeben. Ein entsprechendes iDialect-Objekt erhält man von der Datenbankverbindung.

Mammt\DB\DB

Folgende Methoden werden zusätzlich häufig benötigt:

Mammut\DB\Sql\Insert

Repräsentiert ein INSERT-Statement.

Mammut\DB\Sql\Select

Repräsentiert ein SELECT-Statement.

Mammut\DB\Sql\Update

Repräsentiert ein UPDATE-Statement.

Mammut\DB\Sql\Delete

Repräsentiert ein DELETE-Statement.

Beispiele

Select:

$sql = $db->select()->from('table')->where('group' => 1)->limit(5);
$result = $db->query($sql);

Delete:

$sql = $db->delete()->from('table')->where('id' => 1);
$result = $db->query($sql);

Impressum