Details
Description
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them.
The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass.
The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...)
Example :
/**
* @EntityListeners({"ContractSubscriber"})
*/
class CompanyContract
{
}
class ContractSubscriber
{
/**
* @PrePersist
*/
public function prePersistHandler(CompanyContract $contract)
{
// do something
}
/**
* @PostPersist
* Most of cases just the entity is needed.
* as a second parameter LifecycleEventArgs allow access to the entity manager.
*/
public function postPersistHandler(CompanyContract $contract, LifecycleEventArgs $args)
{
// do something
}
}
$contract = new CompanyFlexContract();
// do something
$em->persist($contract);
Activity
Fabio B. Silva
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Description |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PostPersist */ public function persistHandler(CompanyContract $contract) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PrePersist */ public function prePersistHandler(CompanyContract $contract) { // do something } /** * @PostPersist * Most of cases the entity just is needed. * as a second parameter LifecycleEventArgs allow access to the entity manager. */ public function postPersistHandler(CompanyContract $contract) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Fabio B. Silva
made changes -
| Description |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PrePersist */ public function prePersistHandler(CompanyContract $contract) { // do something } /** * @PostPersist * Most of cases the entity just is needed. * as a second parameter LifecycleEventArgs allow access to the entity manager. */ public function postPersistHandler(CompanyContract $contract) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PrePersist */ public function prePersistHandler(CompanyContract $contract) { // do something } /** * @PostPersist * Most of cases the entity just is needed. * as a second parameter LifecycleEventArgs allow access to the entity manager. */ public function postPersistHandler(CompanyContract $contract, LifecycleEventArgs $args) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Fabio B. Silva
made changes -
| Description |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PrePersist */ public function prePersistHandler(CompanyContract $contract) { // do something } /** * @PostPersist * Most of cases the entity just is needed. * as a second parameter LifecycleEventArgs allow access to the entity manager. */ public function postPersistHandler(CompanyContract $contract, LifecycleEventArgs $args) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Support for @EntityListeners
Now subscribers are called for ALL entities, to increase the performance we should allow the configuration listeners for entities that need them. The @EntityListeners annotation specifies the callback listener classes to be used for an entity or mapped superclass. The @EntityListeners annotation may be applied to an entity class or mapped superclass. The listenner callbacks methods are annotated by the current callback annotations (@PreUpdate, @PrePersist, etc...) Example : {code} /** * @EntityListeners({"ContractSubscriber"}) */ class CompanyContract { } class ContractSubscriber { /** * @PrePersist */ public function prePersistHandler(CompanyContract $contract) { // do something } /** * @PostPersist * Most of cases just the entity is needed. * as a second parameter LifecycleEventArgs allow access to the entity manager. */ public function postPersistHandler(CompanyContract $contract, LifecycleEventArgs $args) { // do something } } $contract = new CompanyFlexContract(); // do something $em->persist($contract); {code} |
Fabio B. Silva
made changes -
| Status | Open [ 1 ] | In Progress [ 3 ] |
Fabio B. Silva
made changes -
| Status | In Progress [ 3 ] | Resolved [ 5 ] |
| Fix Version/s | 2.4 [ 10321 ] | |
| Resolution | Fixed [ 1 ] |
This list may be incomplete, as errors occurred whilst retrieving source from linked applications:
- Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DDC-1955, expand=changesets[-21:-1].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)
I don't see how this could improve performances much: there is only one event manager, so all listeners would be registered in the same. This means that the event manager would then need to contain some checks to know whether the listener should be called for this entity. This means that it will add overhead for all listeners instead of only in listeners needing to check the entity.