PersistentObject
in package
implements
ObjectManagerAware
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:
- All persistent objects have to be associated with a single ObjectManager, multiple
ObjectManagers are not supported. You can set the ObjectManager with
PersistentObject#setObjectManager(). - Setters and getters only work if a ClassMetadata instance was injected into the PersistentObject.
This is either done on
postLoadof an object or by accessing the global object manager. - There are no hooks for setters/getters. Just implement the method yourself instead of relying on __call().
- Slower than handcoded implementations: An average of 7 method calls per access to a field and 11 for an association.
- Only the inverse side associations get autoset on the owning side as well. Setting objects on the owning side will not set the inverse side associations.
Tags
Interfaces, Classes, Traits and Enums
- ObjectManagerAware
- Makes a Persistent Objects aware of its own object-manager.
Table of Contents
- $cm : ClassMetadata<string|int, object>|null
- $objectManager : ObjectManager|null
- __call() : mixed
- Magic methods.
- getObjectManager() : ObjectManager|null
- injectObjectManager() : void
- Injects the Doctrine Object Manager.
- setObjectManager() : void
- Sets the object manager responsible for all persistent object base classes.
- add() : void
- Adds an object to a collection.
- completeOwningSide() : void
- If this is an inverse side association, completes the owning side.
- get() : mixed
- Gets a persistent field value.
- initializeDoctrine() : void
- Initializes Doctrine Metadata for this class.
- set() : void
- Sets a persistent fields value.
Properties
$cm
private
ClassMetadata<string|int, object>|null
$cm
= null
Tags
$objectManager
private
static ObjectManager|null
$objectManager
= null
Methods
__call()
Magic methods.
public
__call(string $method, array<string|int, mixed> $args) : mixed
Parameters
- $method : string
- $args : array<string|int, mixed>
Tags
Return values
mixed —getObjectManager()
public
static getObjectManager() : ObjectManager|null
Return values
ObjectManager|null —injectObjectManager()
Injects the Doctrine Object Manager.
public
injectObjectManager(ObjectManager $objectManager, ClassMetadata $classMetadata) : void
Parameters
- $objectManager : ObjectManager
- $classMetadata : ClassMetadata
Tags
Return values
void —setObjectManager()
Sets the object manager responsible for all persistent object base classes.
public
static setObjectManager([ObjectManager|null $objectManager = null ]) : void
Parameters
- $objectManager : ObjectManager|null = null
Return values
void —add()
Adds an object to a collection.
private
add(string $field, array<string|int, mixed> $args) : void
Parameters
- $field : string
- $args : array<string|int, mixed>
Tags
Return values
void —completeOwningSide()
If this is an inverse side association, completes the owning side.
private
completeOwningSide(string $field, string $targetClass, object $targetObject) : void
Parameters
- $field : string
- $targetClass : string
- $targetObject : object
Tags
Return values
void —get()
Gets a persistent field value.
private
get(string $field) : mixed
Parameters
- $field : string
Tags
Return values
mixed —initializeDoctrine()
Initializes Doctrine Metadata for this class.
private
initializeDoctrine() : void
Tags
Return values
void —set()
Sets a persistent fields value.
private
set(string $field, array<string|int, mixed> $args) : void
Parameters
- $field : string
- $args : array<string|int, mixed>