class DataObject extends DataObjectImplementation

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

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

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 MySQL $connection
protected string $database
protected string $table

Methods

__construct(DataSource $uri)

Erstellt einen neuen Provider. Die URI muss in der Form mysql://[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:

each(Closure $callback)

Alle Datensätze durchlaufen und abarbeiten

Details

at line 105
__construct(DataSource $uri)

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

Beispiel: mysql://example.com:65432/test/objects

Parameters

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

at line 146
__destruct()

Resourcen freigeben

at line 167
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 198
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 224
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 252
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 284
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

at line 313
DataObject each(Closure $callback)

Alle Datensätze durchlaufen und abarbeiten

Parameters

Closure $callback

Return Value

DataObject

Exceptions

UnsupportedException