class DataObject extends DataObjectImplementation

Der PostgreSQL-Provider kapselt das Managment für die Arbeit mit einer PostgreSQL-Datenbank. Zum Speichern der Daten muss auf dem PostgreSQL Server die folgende Tabellenstruktur angelegt sein:

CREATE TABLE object (
  sys_ID VARCHAR(255) PRIMARY KEY,
  sys_so TEXT,
  sys_creation DATE,
  sys_lastupdate DATE
)

Alvine UML-Diagramm


Der Name der Tabelle kann frei gewählt werden und muss mit der URI an den Provider übergeben werden.

Constants

FIELD_INDEX

Name der Indexspalte

FIELD_OBJECT

Objektspeicher

FIELD_CREATION

Erstelldatum

FIELD_LASTUPDATE

Letztes Update

Properties

protected PostgreSQL $connection
protected string $database
protected string $table

Methods

__construct(DataSource $uri)

Erstellt einen neuen Provider. Die URI muss in der Form pgsql://[username:password@]host1[:port1]/db/table übergeben werden. Wird db oder table nicht angegeben, so werden die Standardnamen aus DEFAULTTABLE und DEFAULTDATABASE verwendet.

__destruct()

Resourcen freigeben

delete(string $id)

Löscht ein Objekt anhand seiner ID. Ist kein Objekt vorhanden, so wird eine ObjectNotFoundException geworfen. Bestimmte Provider können noch andere Providerspezifische Exceptions werfen.

string
read(string $id)

Daten lesen

Provider
write(string $id, string $data)

Schreibt die Daten eines serialisierten Objekts. Wenn bereits ein Objekt unter dieser ID vorhanden ist, so wird dieses Objekt ohne Prüfung überschrieben, ansonsten wird die ID neu angelegt.

Provider
update(string $id, string $data)

Objekt aktualisieren

static DataObject
getInstanceFromProperties(Properties $properties)

Erstellt einen neuen Provider und initialisiert die Werte über ein Property-Objekt. Die gültigen Eigenschaften sind:

Details

at line 104
__construct(DataSource $uri)

Erstellt einen neuen Provider. Die URI muss in der Form pgsql://[username:password@]host1[:port1]/db/table übergeben werden. Wird db oder table nicht angegeben, so werden die Standardnamen aus DEFAULTTABLE und DEFAULTDATABASE verwendet.

Beispiel: pgsql://postgres:example@localhost:5432/postgres/alvine

Parameters

DataSource $uri \Alvine\Net\Resource\URI $uri Datenquelle

at line 129
__destruct()

Resourcen freigeben

at line 150
DataObject delete(string $id)

Löscht ein Objekt anhand seiner ID. Ist kein Objekt vorhanden, so wird eine ObjectNotFoundException geworfen. Bestimmte Provider können noch andere Providerspezifische Exceptions werfen.

Parameters

string $id ID des Objekts (z.B. UUID)

Return Value

DataObject Dieses Objekt

Exceptions

DataObjectException Wenn Fehler beim Löschen auftritt
ObjectNotFoundException Wenn es kein Objekt mit dieser ID gibt

at line 187
string read(string $id)

Daten lesen

Diese Methode sucht ein Objekt anhand einer ID und gibt die gespeicherten Daten zurück. Ist unter dieser ID kein Objekt gespeichert, so wird eine ObjectNotFoundException geworfen.

Parameters

string $id ID des Objekts (z.B. UUID)

Return Value

string Objekt als serialisierter String

Exceptions

ObjectNotFoundException Wenn das Objekt nicht existiert

at line 217
Provider write(string $id, string $data)

Schreibt die Daten eines serialisierten Objekts. Wenn bereits ein Objekt unter dieser ID vorhanden ist, so wird dieses Objekt ohne Prüfung überschrieben, ansonsten wird die ID neu angelegt.

Parameters

string $id ID des Objekts (z.B. UUID)
string $data Zu speichernde Daten (serialisiertes Objekt)

Return Value

Provider Dieses Objekt

at line 247
Provider update(string $id, string $data)

Objekt aktualisieren

Ändert die serialisierten Daten im Speicherbereich. Wird die übergebene ID nicht gefunden, so wird eine ObjectNotFoundException geworfen.

Parameters

string $id ID des Objekts (z.B. UUID)
string $data Zu speichernde Daten (serialisiertes Objekt)

Return Value

Provider Dieses Objekt

at line 285
static DataObject getInstanceFromProperties(Properties $properties)

Erstellt einen neuen Provider und initialisiert die Werte über ein Property-Objekt. Die gültigen Eigenschaften sind:

uri URI von MySql in der Form mysql://[username:password@]host1[:port1]/db/table

Parameters

Properties $properties Eigenschaften

Return Value

DataObject Neues Objekt

Exceptions

FrameworkException