diff --git a/src/SoftDeleteable/Event/ODM/PostSoftDeleteEventArgs.php b/src/SoftDeleteable/Event/ODM/PostSoftDeleteEventArgs.php new file mode 100644 index 000000000..5eb4c888a --- /dev/null +++ b/src/SoftDeleteable/Event/ODM/PostSoftDeleteEventArgs.php @@ -0,0 +1,11 @@ +dispatchEvent( self::PRE_SOFT_DELETE, - $ea->createLifecycleEventArgsInstance($object, $om) + $this->createAppropriatePreSoftDeleteEventArgs($object, $om) ); $reflProp->setValue($object, $date); @@ -98,7 +103,7 @@ public function onFlush(EventArgs $args) $evm->dispatchEvent( self::POST_SOFT_DELETE, - $ea->createLifecycleEventArgsInstance($object, $om) + $this->createAppropriatePostSoftDeleteEventArgs($object, $om) ); } } @@ -120,4 +125,42 @@ protected function getNamespace() { return __NAMESPACE__; } + + /** + * create the appropriate event args for pre_soft_delete event + * + * @param $object + * @param ObjectManager $om + * + * @return OdmPreSoftDeleteEventArgs|OrmPreSoftDeleteEventArgs|void + */ + private function createAppropriatePreSoftDeleteEventArgs($object, ObjectManager $om) + { + if ($om instanceof EntityManagerInterface) { + return new OrmPreSoftDeleteEventArgs($object, $om); + } elseif ($om instanceof DocumentManager) { + return new OdmPreSoftDeleteEventArgs($object, $om); + } else { + // TODO : implement unknown object manager case + } + } + + /** + * create the appropriate event args for post_soft_delete event + * + * @param $object + * @param ObjectManager $om + * + * @return OdmPostSoftDeleteEventArgs|OrmPostSoftDeleteEventArgs|void + */ + private function createAppropriatePostSoftDeleteEventArgs($object, ObjectManager $om) + { + if ($om instanceof EntityManagerInterface) { + return new OrmPostSoftDeleteEventArgs($object, $om); + } elseif ($om instanceof DocumentManager) { + return new OdmPostSoftDeleteEventArgs($object, $om); + } else { + // TODO : implement unknown object manager case + } + } }