You are here

protected function AbstractLoader::newConstraint in Plug 7

Creates a new constraint instance for the given constraint name.

Parameters

string $name The constraint name. Either a constraint relative: to the default constraint namespace, or a fully qualified class name. Alternatively, the constraint may be preceded by a namespace alias and a colon. The namespace alias must have been defined using {@link addNamespaceAlias()}.

mixed $options The constraint options:

Return value

Constraint

Throws

MappingException If the namespace prefix is undefined

2 calls to AbstractLoader::newConstraint()
XmlFileLoader::parseConstraints in lib/Symfony/validator/Symfony/Component/Validator/Mapping/Loader/XmlFileLoader.php
Parses a collection of "constraint" XML nodes.
YamlFileLoader::parseNodes in lib/Symfony/validator/Symfony/Component/Validator/Mapping/Loader/YamlFileLoader.php
Parses a collection of YAML nodes.

File

lib/Symfony/validator/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php, line 73

Class

AbstractLoader
Base loader for validation metadata.

Namespace

Symfony\Component\Validator\Mapping\Loader

Code

protected function newConstraint($name, $options = null) {
  if (strpos($name, '\\') !== false && class_exists($name)) {
    $className = (string) $name;
  }
  elseif (strpos($name, ':') !== false) {
    list($prefix, $className) = explode(':', $name, 2);
    if (!isset($this->namespaces[$prefix])) {
      throw new MappingException(sprintf('Undefined namespace prefix "%s"', $prefix));
    }
    $className = $this->namespaces[$prefix] . $className;
  }
  else {
    $className = self::DEFAULT_NAMESPACE . $name;
  }
  return new $className($options);
}