final class AnnotationRegistry in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php \Doctrine\Common\Annotations\AnnotationRegistry
AnnotationRegistry.
Hierarchy
- class \Doctrine\Common\Annotations\AnnotationRegistry
Expanded class hierarchy of AnnotationRegistry
1 file declares its use of AnnotationRegistry
- AnnotatedClassDiscovery.php in core/
lib/ Drupal/ Component/ Annotation/ Plugin/ Discovery/ AnnotatedClassDiscovery.php - Contains \Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery.
File
- vendor/
doctrine/ annotations/ lib/ Doctrine/ Common/ Annotations/ AnnotationRegistry.php, line 25
Namespace
Doctrine\Common\AnnotationsView source
final class AnnotationRegistry {
/**
* A map of namespaces to use for autoloading purposes based on a PSR-0 convention.
*
* Contains the namespace as key and an array of directories as value. If the value is NULL
* the include path is used for checking for the corresponding file.
*
* This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own.
*
* @var array
*/
private static $autoloadNamespaces = array();
/**
* A map of autoloader callables.
*
* @var array
*/
private static $loaders = array();
/**
* @return void
*/
public static function reset() {
self::$autoloadNamespaces = array();
self::$loaders = array();
}
/**
* Registers file.
*
* @param string $file
*
* @return void
*/
public static function registerFile($file) {
require_once $file;
}
/**
* Adds a namespace with one or many directories to look for files or null for the include path.
*
* Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
*
* @param string $namespace
* @param string|array|null $dirs
*
* @return void
*/
public static function registerAutoloadNamespace($namespace, $dirs = null) {
self::$autoloadNamespaces[$namespace] = $dirs;
}
/**
* Registers multiple namespaces.
*
* Loading of this namespaces will be done with a PSR-0 namespace loading algorithm.
*
* @param array $namespaces
*
* @return void
*/
public static function registerAutoloadNamespaces(array $namespaces) {
self::$autoloadNamespaces = array_merge(self::$autoloadNamespaces, $namespaces);
}
/**
* Registers an autoloading callable for annotations, much like spl_autoload_register().
*
* NOTE: These class loaders HAVE to be silent when a class was not found!
* IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.
*
* @param callable $callable
*
* @return void
*
* @throws \InvalidArgumentException
*/
public static function registerLoader($callable) {
if (!is_callable($callable)) {
throw new \InvalidArgumentException("A callable is expected in AnnotationRegistry::registerLoader().");
}
self::$loaders[] = $callable;
}
/**
* Autoloads an annotation class silently.
*
* @param string $class
*
* @return boolean
*/
public static function loadAnnotationClass($class) {
foreach (self::$autoloadNamespaces as $namespace => $dirs) {
if (strpos($class, $namespace) === 0) {
$file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php";
if ($dirs === null) {
if ($path = stream_resolve_include_path($file)) {
require $path;
return true;
}
}
else {
foreach ((array) $dirs as $dir) {
if (is_file($dir . DIRECTORY_SEPARATOR . $file)) {
require $dir . DIRECTORY_SEPARATOR . $file;
return true;
}
}
}
}
}
foreach (self::$loaders as $loader) {
if (call_user_func($loader, $class) === true) {
return true;
}
}
return false;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AnnotationRegistry:: |
private static | property | A map of namespaces to use for autoloading purposes based on a PSR-0 convention. | |
AnnotationRegistry:: |
private static | property | A map of autoloader callables. | |
AnnotationRegistry:: |
public static | function | Autoloads an annotation class silently. | |
AnnotationRegistry:: |
public static | function | Adds a namespace with one or many directories to look for files or null for the include path. | |
AnnotationRegistry:: |
public static | function | Registers multiple namespaces. | |
AnnotationRegistry:: |
public static | function | Registers file. | |
AnnotationRegistry:: |
public static | function | Registers an autoloading callable for annotations, much like spl_autoload_register(). | |
AnnotationRegistry:: |
public static | function |