private function importResource(array $data, LoadingCriteriaInterface $loadingCriteria, DelegatingLoader $delegatingLoader, Configuration $configuration) { $defaultResourceDir = $configuration->getDefaultClassMetadataResourceDir(); if (isset($data['imports']['resources'])) { foreach ($data['imports']['resources'] as $resourceSettings) { $otherResourcePath = null; if (isset($resourceSettings['path'])) { $otherResourcePath = $resourceSettings['path']; if ('.' === ($otherResourceDir = dirname($otherResourcePath))) { $otherResourcePath = $defaultResourceDir . '/' . $otherResourcePath; } } $otherResourceType = null; if (isset($resourceSettings['type'])) { $otherResourceType = $resourceSettings['type']; } $otherResourceClass = null; if (isset($resourceSettings['class'])) { $otherResourceClass = $resourceSettings['class']; } $otherResourceMethod = null; if (isset($resourceSettings['method'])) { $otherResourceMethod = $resourceSettings['method']; } $loadingCriteria = LoadingCriteria::create($otherResourcePath, $otherResourceType, $otherResourceClass, $otherResourceMethod); $delegatedLoader = $delegatingLoader->getDelegatedLoader($loadingCriteria); $othersData = $delegatedLoader->getData($loadingCriteria, $configuration, $delegatingLoader); $data = array_merge_recursive($othersData, $data); } } return $data; }
/** * @param string $className * @return ClassMetadata\ClassMetadata */ public function loadMetadata($className) { $fullClassName = $this->getMetadataClassName($className); $loadingCriteria = ClassMetadataLoader\LoadingCriteria::create('', '', $fullClassName, 'loadInnerYamlMetadata'); $loader = new ClassMetadataLoader\InnerYamlLoader(); $delegatingLoaderMock = $this->getMockBuilder('\\Kassko\\DataMapper\\ClassMetadataLoader\\DelegatingLoader')->disableOriginalConstructor()->getMock(); return $loader->loadClassMetadata(new ClassMetadata\ClassMetadata($fullClassName), $loadingCriteria, new Configuration(), $delegatingLoaderMock); }
/** * @param string $className * @return ClassMetadata\ClassMetadata */ public function loadMetadata($className) { $fullClassName = $this->getMetadataClassName($className); $classMetadata = new ClassMetadata\ClassMetadata($fullClassName); $loadingCriteria = ClassMetadataLoader\LoadingCriteria::create(sys_get_temp_dir(), '', $fullClassName, ''); $loader = new ClassMetadataLoader\AnnotationLoader(new AnnotationReader()); return $loader->loadClassMetadata($classMetadata, $loadingCriteria, new Configuration()); }