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