improving namespace autoloading support.

This commit is contained in:
Taylor Otwell 2012-02-06 11:40:18 -06:00
parent 5b6b156b41
commit bc1a7d0771
1 changed files with 18 additions and 3 deletions

View File

@ -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.
*