improving namespace autoloading support.
This commit is contained in:
parent
5b6b156b41
commit
bc1a7d0771
|
@ -64,10 +64,8 @@ class_alias(static::$aliases[$class], $class);
|
|||
// using the PSR-0 standards from that directory; however, we will trim
|
||||
// off the beginning of the namespace to account for files in the root
|
||||
// of the mapped directory.
|
||||
if (isset(static::$namespaces[$namespace]))
|
||||
if ( ! is_null($directory = static::directory($class)))
|
||||
{
|
||||
$directory = static::$namespaces[$namespace];
|
||||
|
||||
return static::load_psr(substr($class, $slash + 1), $directory);
|
||||
}
|
||||
|
||||
|
@ -93,6 +91,23 @@ class_alias(static::$aliases[$class], $class);
|
|||
static::load_psr($class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the directory associated with a given namespaced class.
|
||||
*
|
||||
* @param string $class
|
||||
* @return string
|
||||
*/
|
||||
protected static function directory($class)
|
||||
{
|
||||
foreach (static::$namespaces as $namespace => $directory)
|
||||
{
|
||||
if (starts_with($class, $namespace))
|
||||
{
|
||||
return $directory;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempt to resolve a class using the PSR-0 standard.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue