connection = $connection; $this->configuration = $configuration; $this->timestampListener = $timestampListener; $this->validationListener = $validationListener; $this->emojiEncodingListener = $emojiEncodingListener; $this->lastSubscribedAtListener = $lastSubscribedAtListener; } public function createEntityManager(): EntityManager { $entityManager = EntityManager::create($this->connection, $this->configuration); $this->setupListeners($entityManager); if ( class_exists(Debugger::class) && class_exists(DoctrinePanel::class) ) { DoctrinePanel::init($entityManager); } return $entityManager; } private function setupListeners(EntityManager $entityManager) { $entityManager->getEventManager()->addEventListener( [Events::prePersist, Events::preUpdate], $this->timestampListener ); $entityManager->getEventManager()->addEventListener( [Events::onFlush], $this->validationListener ); $entityManager->getEventManager()->addEventListener( [Events::prePersist, Events::preUpdate], $this->emojiEncodingListener ); $entityManager->getEventManager()->addEventListener( [Events::prePersist, Events::preUpdate], $this->lastSubscribedAtListener ); } }