Konfiguration¶
Über die Methode DataSource::getInstanceFromProperties()
lässt sich die Datenquelle über Eigenschaften - zum Beispiel
aus einer Property-Datei - konfigurieren.
# Uniform Resource Identifier der Datenquelle
uri=mysql://root:secret@localhost:3306/alvine/object
Eigenschaften¶
Eigenschaft | Beschreibung | Beispiel |
---|---|---|
uri | URI der Datenquelle | mysql://root:secret@localhost:3306/alvine/object |
URI¶
Die URI hat den klassischen Aufbau aus Protokoll, Zugangsdaten, Server und Pfad.
mysql://root:secret@localhost:3306/alvine/object
┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┗━━━ Name der Tabelle
┃ ┃ ┃ ┃ ┃ ┗━━━ Datenbank
┃ ┃ ┃ ┃ ┗━━━ Port
┃ ┃ ┃ ┗━━━ Server
┃ ┃ ┗━━━ Passwort
┃ ┗━━━ Benutzername
┗━━━ Protokoll
Das Protokoll muss immer mysql
sein, ein anderes Protokoll führt zu einer \Alvine\Persistence\DataObjectException
Exception. Wir keine Tabelle angegeben, so wird die Konstante DataSource::DEFAULTTABLE
mit dem Wert object
verwendet.
Beispiel¶
Über folgende Anweisungen werden erst die Eigenschaften eingelesen und im Anschluß das Datenobjekt erstellt.
// Eigenschaftsdatei definieren
$file=new \Alvine\IO\File\File('datasource.properties', new \Alvine\IO\File\Directory(__DIR__));
// Eigenschaften einlesen
$properties=new \Alvine\Types\Configuration\Properties($file);
// Datenquelle erstellen
$source=\Alvine\Persistence\Provider\MySQL\DataSource::getInstanceFromProperties($properties);
Objektstorage¶
Für die Verwendung mit dem Objektstorage muss folgende Datenbank angelegt werden.
CREATE TABLE IF NOT EXISTS `object` (
`sys_ID` varchar(255) NOT NULL
COMMENT
'ID des Objektes, bei Alvine-Objekten ist dies eine UUID',
`sys_so` text NOT NULL
COMMENT 'Serialisierte Objektdaten',
`sys_creation` datetime NOT NULL
COMMENT
'Dieses Objekt wurde zu diesem Zeitpunkt erstellt',
`sys_lastupdate` datetime NOT NULL
COMMENT
'Die letzte Änderung am Objekt erfolgte zu dieser Zeit',
PRIMARY KEY (`sys_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
COMMENT='Speicher für Alvine-Objekte';