/** * Initialize listeners and annotations required for extensions * * @param MvcEvent $e * * @throws \Doctrine\DBAL\DBALException */ public function initializeBitWebDoctrineExtensions(MvcEvent $e) { $locator = $e->getApplication()->getServiceManager(); Type::addType('file', FileType::class); File::setDefaultBasePath(dirname($_SERVER['SCRIPT_FILENAME']) . '/files'); File::setDefaultUploadBasePath(File::getDefaultBasePath()); /* @var $em EntityManager */ $em = $locator->get(EntityManager::class); $em->getConfiguration()->addFilter('SoftDelete', SoftDeleteFilter::class); $em->getFilters()->enable('SoftDelete'); new FileListener($em->getEventManager()); new IpListener($em->getEventManager()); new SoftDeletableListener($em->getEventManager()); new UserAgentListener($em->getEventManager()); $annotationBaseDir = __DIR__ . '/../../../doctrine-extension/src/Mapping/'; AnnotationRegistry::registerFile($annotationBaseDir . 'File.php'); AnnotationRegistry::registerFile($annotationBaseDir . 'Ip.php'); AnnotationRegistry::registerFile($annotationBaseDir . 'SoftDeletable.php'); AnnotationRegistry::registerFile($annotationBaseDir . 'UserAgent.php'); }