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.postgresql-snapshot.phar';
PostgreSQL anlegen¶
Als nächstes benötigen wir eine PostgreSQL-Datenbank. Diese kann einfach mittels Docker erstellt werden.
cd /tmp/
cat <<"EOF" > docker-compose.yml
version: '3.1'
services:
db:
image: postgres
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
EOF
Die so erstellte docker-compose.yml dann mit docker-compose up
starten.
Der Container ist dann über http://localhost:8080/?pgsql=db&username=postgres
oder per Port 5432
erreichbar
Das Passwort ist : example
PostgreSQL Datenbank anlegen¶
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
PostgreSQL Tabelle anlegen¶
In dieser Datenbank wird nun eine Tabelle angelegt. Hierzu verwenden wir folgendes SQL-Query.
CREATE TABLE object (
sys_ID VARCHAR(255) PRIMARY KEY,
sys_so TEXT,
sys_creation DATE,
sys_lastupdate DATE
)
Erste Anwendung¶
Als nächstes können wir in der Datei myapp.php
die URI der Datenbank notieren.
$uri = new \Alvine\Net\Resource\URI('pgsql://postgres:example@localhost:5432/alvine/object');
Jetzt können die CRUD-Anweisungen des DataObjektes verwendet werden.
$dataObject = new \Alvine\Persistence\Provider\PostgreSQL\DataObject($uri);
Daten schreiben
$dataObject->write('d1ea93d6-2065-4a02-b2af-5630cbbbc32d','TEST');
Daten lesen
$result = $dataObject->read('d1ea93d6-2065-4a02-b2af-5630cbbbc32d');
Daten ändern
$dataObject->update('d1ea93d6-2065-4a02-b2af-5630cbbbc32d','TEST geändert');
Daten löschen
$dataObject->delete('d1ea93d6-2065-4a02-b2af-5630cbbbc32d');