1
0
Fork 0

- Adding prefix option to ClassLoader::add()

- Adding set method to ClassLoader for overwriting
pull/1324/head
Joe Holdcroft 2012-11-14 10:34:19 +00:00
parent de3188ca7d
commit e74223470a
1 changed files with 33 additions and 8 deletions

View File

@ -75,12 +75,13 @@ class ClassLoader
}
/**
* Registers a set of classes
* Registers a set of classes, merging with any others previously set.
*
* @param string $prefix The classes prefix
* @param array|string $paths The location(s) of the classes
* @param string $prefix The classes prefix
* @param array|string $paths The location(s) of the classes
* @param bool $prepend Prepend the location(s)
*/
public function add($prefix, $paths)
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
foreach ((array) $paths as $path) {
@ -90,15 +91,39 @@ class ClassLoader
return;
}
if (isset($this->prefixes[$prefix])) {
$this->prefixes[$prefix] = array_merge(
$this->prefixes[$prefix],
(array) $paths
);
if ($prepend) {
$this->prefixes[$prefix] = array_merge(
(array) $paths,
$this->prefixes[$prefix]
);
}
else {
$this->prefixes[$prefix] = array_merge(
$this->prefixes[$prefix],
(array) $paths
);
}
} else {
$this->prefixes[$prefix] = (array) $paths;
}
}
/**
* Registers a set of classes, replacing any others previously set.
*
* @param string $prefix The classes prefix
* @param array|string $paths The location(s) of the classes
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirs = (array) $path;
return;
}
$this->prefixes[$prefix] = (array) $paths;
}
/**
* Turns on searching the include path for class files.
*