abstract class PersistentObject implements ObjectManagerAware (View source)

PersistentObject base class that implements getter/setter methods for all mapped fields and associations by overriding __call.

This class is a forward compatible implementation of the PersistentObject trait.

Limitations:

  1. All persistent objects have to be associated with a single ObjectManager, multiple ObjectManagers are not supported. You can set the ObjectManager with PersistentObject#setObjectManager().
  2. Setters and getters only work if a ClassMetadata instance was injected into the PersistentObject. This is either done on postLoad of an object or by accessing the global object manager.
  3. There are no hooks for setters/getters. Just implement the method yourself instead of relying on __call().
  4. Slower than handcoded implementations: An average of 7 method calls per access to a field and 11 for an association.
  5. Only the inverse side associations get autoset on the owning side aswell. Setting objects on the owning side will not set the inverse side associations.

Methods

static 
setObjectManager(ObjectManager $objectManager = null)

Set the object manager responsible for all persistent object base classes.

static ObjectManager
getObjectManager()

No description

injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata)

Inject Doctrine Object Manager

mixed
__call(string $method, array $args)

Magic method that implements

Details

static setObjectManager(ObjectManager $objectManager = null)

Set the object manager responsible for all persistent object base classes.

Parameters

ObjectManager $objectManager

static ObjectManager getObjectManager()

Return Value

ObjectManager

injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata)

Inject Doctrine Object Manager

Parameters

ObjectManager $objectManager
ClassMetadata $classMetadata

mixed __call(string $method, array $args)

Magic method that implements

Parameters

string $method
array $args

Return Value

mixed