PersistenceManagerInterface
interface PersistenceManagerInterface (View source)
The Flow Persistence Manager interface
Methods
Injects the Flow settings, called by Flow.
Commits new objects and changes to objects in the current persistence session into the backend.
Clears the in-memory state of the persistence.
Checks if the given object has ever been persisted.
Registers an object which has been created or cloned during this request.
Returns the (internal) identifier for the object, if it is known to the backend. Otherwise NULL is returned.
Returns the object with the (internal) identifier, if it is known to the backend. Otherwise NULL is returned.
Converts the given object into an array containing the identity of the domain object.
Recursively iterates through the given array and turns objects into arrays containing the identity of the domain object.
Return a query object for the given type.
Adds an object to the persistence.
Removes an object to the persistence.
Update an object in the persistence.
Adds the given object to a list of allowed objects which may be persisted when persistAll() is called with the $onlyAllowedObjects flag. This is the case if "safe" HTTP request methods are used.
Returns true, if an active connection to the persistence backend has been established, e.g. entities can be persisted.
Gives feedback if the persistence Manager has unpersisted changes.
Details
void
injectSettings(array $settings)
Injects the Flow settings, called by Flow.
void
persistAll(bool $onlyAllowedObjects = false)
Commits new objects and changes to objects in the current persistence session into the backend.
If $onlyAllowedObjects is set to true, only those objects which have been registered with allowObject() will be persisted. If other objects are in the queue, an exception will be raised.
void
clearState()
Clears the in-memory state of the persistence.
Managed instances become detached, any fetches will return data directly from the persistence "backend".
bool
isNewObject(object $object)
Checks if the given object has ever been persisted.
void
registerNewObject(PersistenceMagicInterface $object)
Registers an object which has been created or cloned during this request.
The given object must contain the Persistence_Object_Identifier property, thus the PersistenceMagicInterface type hint. A "new" object does not necessarily have to be known by any repository or be persisted in the end.
Objects registered with this method must be known to the getObjectByIdentifier() method.
mixed
getIdentifierByObject(object $object)
Returns the (internal) identifier for the object, if it is known to the backend. Otherwise NULL is returned.
Note: this returns an identifier even if the object has not been persisted in case of AOP-managed entities. Use isNewObject() if you need to distinguish those cases.
object|null
getObjectByIdentifier(mixed $identifier, string $objectType = null, bool $useLazyLoading = false)
Returns the object with the (internal) identifier, if it is known to the backend. Otherwise NULL is returned.
array
convertObjectToIdentityArray(object $object)
Converts the given object into an array containing the identity of the domain object.
array
convertObjectsToIdentityArrays(array $array)
Recursively iterates through the given array and turns objects into arrays containing the identity of the domain object.
QueryInterface
createQueryForType(string $type)
Return a query object for the given type.
void
add(object $object)
Adds an object to the persistence.
void
remove(object $object)
Removes an object to the persistence.
void
update(object $object)
Update an object in the persistence.
void
whitelistObject(object $object)
deprecated
deprecated
Adds the given object to a list of allowed objects which may be persisted when persistAll() is called with the $onlyAllowedObjects flag. This is the case if "safe" HTTP request methods are used.
bool
isConnected()
Returns true, if an active connection to the persistence backend has been established, e.g. entities can be persisted.
bool
hasUnpersistedChanges()
Gives feedback if the persistence Manager has unpersisted changes.
This is primarily used to inform the user if he tries to save data in an unsafe request.