Last active
November 21, 2021 05:32
-
-
Save vasildakov-zz/2037d0ffd73ee89d7506 to your computer and use it in GitHub Desktop.
ZF2 and Doctrine Entity listeners resolver
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Application; | |
class Module | |
{ | |
public function onBootstrap(MvcEvent $e) | |
{ | |
$application = $e->getTarget(); | |
$serviceManager = $application->getServiceManager(); | |
$sharedManager = $application->getEventManager()->getSharedManager(); | |
$eventManager = $e->getApplication()->getEventManager(); | |
$moduleRouteListener = new ModuleRouteListener(); | |
$moduleRouteListener->attach($eventManager); | |
$listener = new \Application\Listener\UserListener($serviceManager) | |
$em = $serviceManager->get('Doctrine\ORM\EntityManager'); | |
$em->getConfiguration()->getEntityListenerResolver()->register($listener); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Application\Entity\Listener; | |
use Zend\ServiceManager\ServiceManager; | |
use Doctrine\Common\Persistence\Event\LifecycleEventArgs as Event; | |
use Application\Entity\User; | |
class UserListener { | |
/** | |
* @var Zend\ServiceManager\ServiceManager $serviceManager | |
*/ | |
public $serviceManager; | |
/** | |
* Constructor | |
*/ | |
public function __construct(ServiceManager $serviceManager) | |
{ | |
$this->serviceManager = $serviceManager; | |
} | |
/** | |
* prePersist | |
*/ | |
public function prePersist(User $user, Event $args) | |
{ | |
// pre persist | |
} | |
/** | |
* postPersist | |
*/ | |
public function postPersist(User $user, Event $args) | |
{ | |
// var_dump($messageRecipient); exit(); | |
// send user confirmation email | |
$entity = $args->getEntity(); | |
$entityManager = $args->getEntityManager(); | |
if($entity instanceof User) { | |
$myService = $this->serviceManager->get('MyService'); | |
$myService->doSomething(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment