/** * Configures the metadata configuration instance. * * @param Configuration $configuration * @param array $doctrineConfig * @param array $databaseConfig * * @throws Exception */ protected function configureMetadataConfiguration(Configuration $configuration, array $doctrineConfig, array $databaseConfig) { if (isset($doctrineConfig['filters'])) { foreach ($doctrineConfig['filters'] as $name => $filter) { $configuration->addFilter($name, $filter['class']); } } if (isset($doctrineConfig['proxy'])) { if (isset($doctrineConfig['proxy']['auto_generate'])) { $configuration->setAutoGenerateProxyClasses($doctrineConfig['proxy']['auto_generate']); } if (isset($doctrineConfig['proxy']['namespace'])) { $configuration->setProxyNamespace($doctrineConfig['proxy']['namespace']); } if (isset($doctrineConfig['proxy']['directory'])) { $configuration->setProxyDir($doctrineConfig['proxy']['directory']); } } if (!empty($doctrineConfig['repository'])) { $configuration->setDefaultRepositoryClassName($doctrineConfig['repository']); } if (isset($doctrineConfig['hydrator'])) { if (isset($doctrineConfig['hydrator']['directory'])) { $configuration->setHydratorDir($doctrineConfig['hydrator']['directory']); } if (isset($doctrineConfig['hydrator']['namespace'])) { $hydratorNamespace = $doctrineConfig['hydrator']['namespace'] ? $doctrineConfig['hydrator']['namespace'] : self::HYDRATOR_NAMESPACE; $configuration->setHydratorNamespace($hydratorNamespace); } } if (!empty($databaseConfig['connections'][$databaseConfig['default']]['database'])) { $configuration->setDefaultDB($databaseConfig['connections'][$databaseConfig['default']]['database']); } }