DataObject
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';
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
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.
Resourcen freigeben
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.
Daten lesen
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.
Objekt aktualisieren
Erstellt einen neuen Provider und initialisiert die Werte über ein Property-Objekt. Die gültigen Eigenschaften sind:
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
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.
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.
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.
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.
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
at line 313
DataObject
each(Closure $callback)
Alle Datensätze durchlaufen und abarbeiten