/** * @param $model * @return ValidationRule[] */ public function getValidationRules($model) : array { $className = ClassHelper::getClassName($model); $validationRules = $this->store->get($className); if ($validationRules === null) { $validationRules = $this->createValidationRules($className); $this->store->set($className, $validationRules); } return $validationRules; }
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; }