class DataObject extends DataObjectImplementation

Datenzugriff auf Dateisystem

Der Provider kapselt das Managment der serialisierten Objekte mit Speicherort Dateisystem. Als URI muss eine file:/// URI angegeben werden.

Constants

FILEEXTENSION

Die Datei wird mit folgender Erweiterung gespeichert.

DIRECTORYLEVEL

Anzahl der Verzeichnisse, die erstellt werden sollen.

Zum Speichern der Objekte werden die ersten Stellen der UUID für die Verzeichnisnamen verwendet.

Properties

protected Directory $path

Methods

insert(string $id, string $data)

Neues Objekt einfügen

boolean
exists(string $id)

Existenz prüfen

each(Closure $callback)

Alle Datensätze durchlaufen und abarbeiten

__construct(DataSource $uri)

Neues Daten-Objekt anlegen

getStorageFile(string $id)

Zieldatei für Objektspeicher bestimmen

delete(string $id)

Objekt löschen

string
read(string $id)

Objekt lesen

write(string $id, string $data)

Schreibt ein Objekt

update(string $id, string $data)

Objekt aktualisieren

static object
getInstanceFromProperties(Properties $properties)

Neue Instanz erstellen

Details

DataObject insert(string $id, string $data)

Neues Objekt einfügen

Fügt die serialisierten Daten eines Objekts mit der angegebenen ID ein. Ist diese ID bereits vorhanden, so wird eine ObjectAlreadyExistsException geworfen.

Parameters

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

Return Value

DataObject Dieses Objekt

at line 203
boolean exists(string $id)

Existenz prüfen

Prüfen ob die ID existiert und lesbar ist.

Parameters

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

Return Value

boolean true, wenn die ID exitiert und lesbar ist, sonst false

at line 242
DataObject each(Closure $callback)

Alle Datensätze durchlaufen und abarbeiten

Der Aufruf erfolgt

// @var \string $id ist die ID des Datensatzes
$dataobject->each(function ($id) {
    // ...
});

Parameters

Closure $callback Funktion die aufgerufen wird

Return Value

DataObject Dieses Objekt

at line 69
__construct(DataSource $uri)

Neues Daten-Objekt anlegen

Legt einen neuen Provider zum Speichern von Objekten an.

Parameters

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

at line 96
protected File getStorageFile(string $id)

Zieldatei für Objektspeicher bestimmen

Ermittelt die Pfadangabe für den Speicherort der Objektdatei und legt bei Bedarf die benötigten Verzeichnisse neu an. Bei der Verzeichnistiefe wird die Konstante DIRECTORYLEVEL verwendet. Die Objekte werden mit der Dateierweiterung FILEEXTENSION gespeichert.

Parameters

string $id ID des Objektes

Return Value

File Dateipfad auf Speicherdatei

at line 116
DataObject delete(string $id)

Objekt löschen

Löscht ein Objekt anhand seiner ID. Ist kein Objekt vorhanden, so wird eine ObjectNotFoundException geworfen.

Parameters

string $id ID des Objektes

Return Value

DataObject Dieses Objekt

Exceptions

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

at line 141
string read(string $id)

Objekt 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

Return Value

string Objekt als serialisierter String

Exceptions

ObjectNotFoundException Wenn das Objekt nicht existiert

at line 161
DataObject write(string $id, string $data)

Schreibt ein Objekt

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

DataObject Dieses Objekt

at line 182
DataObject 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

DataObject Dieses Objekt

at line 220
static object getInstanceFromProperties(Properties $properties)

Neue Instanz erstellen

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

uri Pfadangabe in der die Objektdaten gespeichert werden sollen

Parameters

Properties $properties Eigenschaften

Return Value

object Ein Objekt