Erste Schritte¶
Nach dem erfolgreichen Download der Phar Archive
kann das erste kleine Anwendungsscript erstellt werden. Dazu legen wir die Datei
myapp.php
an.
include_once '/phar/alvine.framework-snapshot.phar';
include_once '/phar/alvine.persistence.provider.mysql-snapshot.phar';
Als nächstes benötigen wir eine MySQL-Datenbank. Diese kann einfach mittels Docker erstellt werden. Dazu muss zuerst das offizielle Docker-Image heruntergeladen werden.
docker pull mysql
Im Anschluß muss ein Container mit dem offenen Port 3306
gestartet werden.
docker run --name alvine-mysql -e MYSQL_ROOT_PASSWORD=secret -d -p 3306:3306 mysql
Für unser Beispiel benötigen wir zuerst eine Datenbank, die wir über den folgenden Befehl anlegen:
Soll eine bereits vorhandene Datenbank verwendet werden, so kann dieser Schritt übergangen werden und
die Tabelle in die bestehende Datenbank eingefügt werden. In diesem Fall ist der Datenbankbezeichner alvine
in den Beispielen entsprechend anzupassen.
CREATE DATABASE alvine;
USE alvine;
In dieser Datenbank wird nun eine Tabelle angelegt. Hierzu verwenden wir folgendes SQL-Query verwendet 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';
Als nächstes können wir in der Datei myapp.php
die URI der Datenbank notieren.
$uri = new \Alvine\Net\Resource\URI('mysql://root:secret@localhost:3306/alvine/object');
Jetzt können die CRUD-Anweisungen des DataObjektes verwendet werden.
// Datenobjekt erstellen ($uri ist vom Typ \Alvine\Net\Resource\URI).
$dataObject=new \Alvine\Persistence\Provider\MySQL\DataObject($uri);
$id = 'my-value-1';
// Inahlt schreiben
$dataObject->write($id, 'Test');
// Inhalt überschreiben
$dataObject->update($id, 'Neuer Wert');
// Inhalt der ID lesen
$result = $dataObject->read($id);
echo $result;
// -> Neuer Wert
// Objekt löschen
$dataObject->delete($id);
Voila!