parent
d9936c1b6e
commit
24e690a2f9
@ -0,0 +1,22 @@ |
||||
{ |
||||
"autoload": { |
||||
"psr-0": { "Chamilo": "src/" }, |
||||
"classmap": [ |
||||
"main/auth", |
||||
"main/admin", |
||||
"main/cron/lang", |
||||
"main/coursecopy", |
||||
"main/exercice", |
||||
"main/gradebook/lib", |
||||
"main/newscorm", |
||||
"main/inc/lib", |
||||
"main/install", |
||||
"main/inc/lib/getid3", |
||||
"main/survey" |
||||
] |
||||
}, |
||||
"require": { |
||||
"php": ">=5.3.2" |
||||
}, |
||||
"minimum-stability": "dev" |
||||
} |
||||
@ -0,0 +1,7 @@ |
||||
<?php |
||||
|
||||
// autoload.php generated by Composer |
||||
|
||||
require_once __DIR__ . '/composer' . '/autoload_real.php'; |
||||
|
||||
return ComposerAutoloaderInit::getLoader(); |
||||
@ -0,0 +1,207 @@ |
||||
<?php |
||||
|
||||
/* |
||||
* This file is part of Composer. |
||||
* |
||||
* (c) Nils Adermann <naderman@naderman.de> |
||||
* Jordi Boggiano <j.boggiano@seld.be> |
||||
* |
||||
* For the full copyright and license information, please view the LICENSE |
||||
* file that was distributed with this source code. |
||||
*/ |
||||
|
||||
namespace Composer\Autoload; |
||||
|
||||
/** |
||||
* ClassLoader implements a PSR-0 class loader |
||||
* |
||||
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md |
||||
* |
||||
* $loader = new \Composer\Autoload\ClassLoader(); |
||||
* |
||||
* // register classes with namespaces |
||||
* $loader->add('Symfony\Component', __DIR__.'/component'); |
||||
* $loader->add('Symfony', __DIR__.'/framework'); |
||||
* |
||||
* // activate the autoloader |
||||
* $loader->register(); |
||||
* |
||||
* // to enable searching the include path (eg. for PEAR packages) |
||||
* $loader->setUseIncludePath(true); |
||||
* |
||||
* In this example, if you try to use a class in the Symfony\Component |
||||
* namespace or one of its children (Symfony\Component\Console for instance), |
||||
* the autoloader will first look for the class under the component/ |
||||
* directory, and it will then fallback to the framework/ directory if not |
||||
* found before giving up. |
||||
* |
||||
* This class is loosely based on the Symfony UniversalClassLoader. |
||||
* |
||||
* @author Fabien Potencier <fabien@symfony.com> |
||||
* @author Jordi Boggiano <j.boggiano@seld.be> |
||||
*/ |
||||
class ClassLoader |
||||
{ |
||||
private $prefixes = array(); |
||||
private $fallbackDirs = array(); |
||||
private $useIncludePath = false; |
||||
private $classMap = array(); |
||||
|
||||
public function getPrefixes() |
||||
{ |
||||
return $this->prefixes; |
||||
} |
||||
|
||||
public function getFallbackDirs() |
||||
{ |
||||
return $this->fallbackDirs; |
||||
} |
||||
|
||||
public function getClassMap() |
||||
{ |
||||
return $this->classMap; |
||||
} |
||||
|
||||
/** |
||||
* @param array $classMap Class to filename map |
||||
*/ |
||||
public function addClassMap(array $classMap) |
||||
{ |
||||
if ($this->classMap) { |
||||
$this->classMap = array_merge($this->classMap, $classMap); |
||||
} else { |
||||
$this->classMap = $classMap; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Registers a set of classes |
||||
* |
||||
* @param string $prefix The classes prefix |
||||
* @param array|string $paths The location(s) of the classes |
||||
*/ |
||||
public function add($prefix, $paths) |
||||
{ |
||||
if (!$prefix) { |
||||
foreach ((array) $paths as $path) { |
||||
$this->fallbackDirs[] = $path; |
||||
} |
||||
|
||||
return; |
||||
} |
||||
if (isset($this->prefixes[$prefix])) { |
||||
$this->prefixes[$prefix] = array_merge( |
||||
$this->prefixes[$prefix], |
||||
(array) $paths |
||||
); |
||||
} else { |
||||
$this->prefixes[$prefix] = (array) $paths; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Turns on searching the include path for class files. |
||||
* |
||||
* @param bool $useIncludePath |
||||
*/ |
||||
public function setUseIncludePath($useIncludePath) |
||||
{ |
||||
$this->useIncludePath = $useIncludePath; |
||||
} |
||||
|
||||
/** |
||||
* Can be used to check if the autoloader uses the include path to check |
||||
* for classes. |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function getUseIncludePath() |
||||
{ |
||||
return $this->useIncludePath; |
||||
} |
||||
|
||||
/** |
||||
* Registers this instance as an autoloader. |
||||
* |
||||
* @param bool $prepend Whether to prepend the autoloader or not |
||||
*/ |
||||
public function register($prepend = false) |
||||
{ |
||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend); |
||||
} |
||||
|
||||
/** |
||||
* Unregisters this instance as an autoloader. |
||||
*/ |
||||
public function unregister() |
||||
{ |
||||
spl_autoload_unregister(array($this, 'loadClass')); |
||||
} |
||||
|
||||
/** |
||||
* Loads the given class or interface. |
||||
* |
||||
* @param string $class The name of the class |
||||
* @return bool|null True, if loaded |
||||
*/ |
||||
public function loadClass($class) |
||||
{ |
||||
if ($file = $this->findFile($class)) { |
||||
include $file; |
||||
|
||||
return true; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Finds the path to the file where the class is defined. |
||||
* |
||||
* @param string $class The name of the class |
||||
* |
||||
* @return string|null The path, if found |
||||
*/ |
||||
public function findFile($class) |
||||
{ |
||||
if (isset($this->classMap[$class])) { |
||||
return $this->classMap[$class]; |
||||
} |
||||
|
||||
if ('\\' == $class[0]) { |
||||
$class = substr($class, 1); |
||||
} |
||||
|
||||
if (false !== $pos = strrpos($class, '\\')) { |
||||
// namespaced class name |
||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)) . DIRECTORY_SEPARATOR; |
||||
$className = substr($class, $pos + 1); |
||||
} else { |
||||
// PEAR-like class name |
||||
$classPath = null; |
||||
$className = $class; |
||||
} |
||||
|
||||
$classPath .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php'; |
||||
|
||||
foreach ($this->prefixes as $prefix => $dirs) { |
||||
if (0 === strpos($class, $prefix)) { |
||||
foreach ($dirs as $dir) { |
||||
if (file_exists($dir . DIRECTORY_SEPARATOR . $classPath)) { |
||||
return $dir . DIRECTORY_SEPARATOR . $classPath; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
foreach ($this->fallbackDirs as $dir) { |
||||
if (file_exists($dir . DIRECTORY_SEPARATOR . $classPath)) { |
||||
return $dir . DIRECTORY_SEPARATOR . $classPath; |
||||
} |
||||
} |
||||
|
||||
if ($this->useIncludePath && $file = stream_resolve_include_path($classPath)) { |
||||
return $file; |
||||
} |
||||
|
||||
$this->classMap[$class] = false; |
||||
} |
||||
} |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@ |
||||
<?php |
||||
|
||||
// autoload_namespaces.php generated by Composer |
||||
|
||||
$vendorDir = dirname(__DIR__); |
||||
$baseDir = dirname($vendorDir); |
||||
|
||||
return array( |
||||
'Chamilo' => $baseDir . '/src/', |
||||
); |
||||
@ -0,0 +1,29 @@ |
||||
<?php |
||||
|
||||
// autoload_real.php generated by Composer |
||||
|
||||
require __DIR__ . '/ClassLoader.php'; |
||||
|
||||
class ComposerAutoloaderInit |
||||
{ |
||||
public static function getLoader() |
||||
{ |
||||
$loader = new \Composer\Autoload\ClassLoader(); |
||||
$vendorDir = dirname(__DIR__); |
||||
$baseDir = dirname($vendorDir); |
||||
|
||||
$map = require __DIR__ . '/autoload_namespaces.php'; |
||||
foreach ($map as $namespace => $path) { |
||||
$loader->add($namespace, $path); |
||||
} |
||||
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php'; |
||||
if ($classMap) { |
||||
$loader->addClassMap($classMap); |
||||
} |
||||
|
||||
$loader->register(); |
||||
|
||||
return $loader; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue