public function getMetadata($class) : ObjectMetadata { if (!is_a($class, MetadataAware::class, true)) { throw new \InvalidArgumentException('Invalid class. Accepted only MetadataAware instances'); } /** @var MetadataAware|string $className */ $className = ClassHelper::getClassName($class); // Resolving the container interface if ($this->container->contains($className)) { $className = $this->container->getClass($className); } if ($this->storage->contains($className)) { $metadata = $this->storage->get($className); } else { $metadata = $this->modelAnalyzer->analyze($className); $this->storage->set($className, $metadata); } return $metadata; }
protected function registerRepository($type, $interface, $class) { if ($this->databaseType === $type) { $this->container->registerClass($interface, $class); } }