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;
});
}