Stores
Stores are objects that implement READ/UPDATE/DELETE operations against a storage medium for objects that implement the StorableInterface interface. In a nutshell, an object is storable if it has an ID (see the StorableTrait and AbstractStorable for a simple implementation). All classes belonging to the Storage namespace can be found here.
There are 3 stores that the Foundations Module comes with:
A memory store for storing objects in-memory during the current request.
An options table store for persistent database storage across requests in the WP options table.
A user meta table store for persistent database storage across request in the WP user meta table.
Stores are storable as well. It is possible to create a store that stores other stores! Check the MultiStoreAwareInterface
and MultiStoreAwareTrait
for examples.
Here is a simple example of a dummy storable object stored in a memory store:
There is no guarantee that your storable object will be stored properly when using the options or user meta stores. The two stores rely on WordPress' own update_option
and update_user_meta
functions respectively and those both rely on PHP's serialize
function. If you have trouble storing your objects, implement the magic methods __serialize
and __unserialize
for better handling.
Last updated