class Psr4ClassLoader in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/class-loader/Psr4ClassLoader.php \Symfony\Component\ClassLoader\Psr4ClassLoader
A PSR-4 compatible class loader.
See http://www.php-fig.org/psr/psr-4/
@author Alexander M. Turek <me@derrabus.de>
Hierarchy
- class \Symfony\Component\ClassLoader\Psr4ClassLoader
Expanded class hierarchy of Psr4ClassLoader
1 file declares its use of Psr4ClassLoader
- Psr4ClassLoaderTest.php in vendor/
symfony/ class-loader/ Tests/ Psr4ClassLoaderTest.php
File
- vendor/
symfony/ class-loader/ Psr4ClassLoader.php, line 21
Namespace
Symfony\Component\ClassLoaderView source
class Psr4ClassLoader {
/**
* @var array
*/
private $prefixes = array();
/**
* @param string $prefix
* @param string $baseDir
*/
public function addPrefix($prefix, $baseDir) {
$prefix = trim($prefix, '\\') . '\\';
$baseDir = rtrim($baseDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
$this->prefixes[] = array(
$prefix,
$baseDir,
);
}
/**
* @param string $class
*
* @return string|null
*/
public function findFile($class) {
$class = ltrim($class, '\\');
foreach ($this->prefixes as $current) {
list($currentPrefix, $currentBaseDir) = $current;
if (0 === strpos($class, $currentPrefix)) {
$classWithoutPrefix = substr($class, strlen($currentPrefix));
$file = $currentBaseDir . str_replace('\\', DIRECTORY_SEPARATOR, $classWithoutPrefix) . '.php';
if (file_exists($file)) {
return $file;
}
}
}
}
/**
* @param string $class
*
* @return bool
*/
public function loadClass($class) {
$file = $this
->findFile($class);
if (null !== $file) {
require $file;
return true;
}
return false;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend
*/
public function register($prepend = false) {
spl_autoload_register(array(
$this,
'loadClass',
), true, $prepend);
}
/**
* Removes this instance from the registered autoloaders.
*/
public function unregister() {
spl_autoload_unregister(array(
$this,
'loadClass',
));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Psr4ClassLoader:: |
private | property | ||
Psr4ClassLoader:: |
public | function | ||
Psr4ClassLoader:: |
public | function | ||
Psr4ClassLoader:: |
public | function | ||
Psr4ClassLoader:: |
public | function | Registers this instance as an autoloader. | |
Psr4ClassLoader:: |
public | function | Removes this instance from the registered autoloaders. |