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');