public function __construct(IStorage $cacheStorage, array $entityClassesMap, IRepositoryLoader $repositoryLoader) { $cache = new Cache($cacheStorage, 'Nextras.Orm.metadata'); static::$metadata = $cache->load($entityClassesMap, function (&$dp) use($entityClassesMap, $repositoryLoader) { $metadata = []; $annotationParser = new MetadataParser($entityClassesMap); foreach (array_keys($entityClassesMap) as $className) { $metadata[$className] = $annotationParser->parseMetadata($className, $dp[Cache::FILES]); } $validator = new MetadataValidator(); $validator->validate($metadata, $repositoryLoader); return $metadata; }); }
/** * @param PropertyMetadata $property * @param string $modifier * @param array $args */ protected function processPropertyModifier(PropertyMetadata $property, $modifier, array $args) { if (isset($this->inverseModifier[$modifier])) { $this->inverseModifier[$modifier]->setCurrentReflection($this->currentReflection); } parent::processPropertyModifier($property, $modifier, $args); }