2015-08-18 00:00:26 +00:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\ClassLoader ;
2018-11-23 12:29:20 +00:00
@ trigger_error ( 'The ' . __NAMESPACE__ . '\Psr4ClassLoader class is deprecated since Symfony 3.3 and will be removed in 4.0. Use Composer instead.' , E_USER_DEPRECATED );
2015-08-18 00:00:26 +00:00
/**
* A PSR - 4 compatible class loader .
*
* See http :// www . php - fig . org / psr / psr - 4 /
*
* @ author Alexander M . Turek < me @ derrabus . de >
2018-11-23 12:29:20 +00:00
*
* @ deprecated since version 3.3 , to be removed in 4.0 .
2015-08-18 00:00:26 +00:00
*/
class Psr4ClassLoader
{
private $prefixes = array ();
/**
* @ param string $prefix
* @ param string $baseDir
*/
public function addPrefix ( $prefix , $baseDir )
{
$prefix = trim ( $prefix , '\\' ) . '\\' ;
2018-11-23 12:29:20 +00:00
$baseDir = rtrim ( $baseDir , \DIRECTORY_SEPARATOR ) . \DIRECTORY_SEPARATOR ;
2015-08-18 00:00:26 +00:00
$this -> prefixes [] = array ( $prefix , $baseDir );
}
/**
* @ param string $class
*
* @ return string | null
*/
public function findFile ( $class )
{
$class = ltrim ( $class , '\\' );
2018-11-23 12:29:20 +00:00
foreach ( $this -> prefixes as list ( $currentPrefix , $currentBaseDir )) {
2015-08-18 00:00:26 +00:00
if ( 0 === strpos ( $class , $currentPrefix )) {
2018-11-23 12:29:20 +00:00
$classWithoutPrefix = substr ( $class , \strlen ( $currentPrefix ));
$file = $currentBaseDir . str_replace ( '\\' , \DIRECTORY_SEPARATOR , $classWithoutPrefix ) . '.php' ;
2015-08-18 00:00:26 +00:00
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' ));
}
}