Storages

From Sunhill Framework Documentation
(Redirected from Storage)


This page is incomplete

While properties handle access and validation of data the storages take care how this data is retrieved or stored. A storage does not necessarily take or write to a persistant medium but can also retrieve informations from the system or calculate its value. The storage does not need to check for access rights or validate the input data this is done by the connected property.

Every property needs exactly one storage. The linkage between property and storage can be done:


All storages are based on AbstractStorage.

Retrieve data

getValue(string $name)

Returns the value with the id $name. If it exists and the entry is still valid if Returns it from the cache.

Example:

$storage->getValue("test"); // Returns the value of test

getIndexedData(string name, mixed $index)

getElemenCount(string $name): int

getKeys(string $name)

getOffsetExists(string $name, mixed $offset): bool

Write data

setValue(string $name, $value)

setIndexedValue(string $name, mixed $index, $value)

Handle metadata

Caching

setCacheID(string $id): self

Sets an cache id. This can be done from external or in the storage itself for example in the constructor

getCacheID(): string

Returns the cache id

setCacheTime(int $int): self

Sets the current caching time

getCacheTime(): int

Returns the current caching time

isCachable(): bool

Returns if this storage is cachable at all.

Persistance

isDirty(): bool

commit()

rollback()

Writing your own storage

For details about writing am own storage see here.