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; }
public function __construct(Configuration $configuration, $parent) { $cacheConfig = $configuration->getResultCacheConfig(); $this->enabled = $cacheConfig->isEnabled(); $this->lifeTime = $cacheConfig->getLifeTime(); $this->cache = $cacheConfig->getCache(); $this->shared = $cacheConfig->isShared(); $this->parent = $parent; }
public static function createFromConfiguration(Configuration $configuration, ObjectKey $objectKey) { $key = $objectKey->getKey(); $instance = (new static())->setResourcePath($configuration->getClassMetadataResource($key))->setResourceType($configuration->getClassMetadataResourceType($key))->setResourceClass($objectKey->getClass()); $resourceMethod = $configuration->getClassMetadataProviderMethod($key); if (isset($resourceMethod)) { $instance->setResourceMethod($resourceMethod); } return $instance; }
/** * @test */ public function loadClassMetadataValidateCalls() { $data = array('testData' => time()); $expectedResult = 'testResult' . time(); $loader = $this->getMockBuilder('Kassko\\DataMapper\\ClassMetadataLoader\\AbstractLoader')->setMethods(array('doGetData', 'doLoadClassMetadata'))->getMockForAbstractClass(); $loader->expects($this->once())->method('doGetData')->with($this->loadingCriteriaMock)->willReturn($data); $loader->expects($this->once())->method('doLoadClassMetadata')->with($this->classMetadataMock, $data)->willReturn($expectedResult); $this->configurationMock->expects($this->once())->method('getDefaultClassMetadataResourceDir')->willReturn('/tmp'); $delegatingLoaderMock = $this->getMockBuilder('\\Kassko\\DataMapper\\ClassMetadataLoader\\DelegatingLoader')->disableOriginalConstructor()->getMock(); $result = $loader->loadClassMetadata($this->classMetadataMock, $this->loadingCriteriaMock, $this->configurationMock, $delegatingLoaderMock); $this->assertEquals($expectedResult, $result); }
public function getClassMetadataDir($objectName) { foreach ($this->runtimeConfigurations as $runtimeConfiguration) { if (!empty($value = $runtimeConfiguration->getClassMetadataDir($objectName))) { return $value; } } return parent::getClassMetadataDir($objectName); }