function xautoload_ClassFinder_Helper_Map::registerPlugin in X Autoload 7.3
Register a plugin for a namespace or prefix.
Parameters
string $logical_base_path: First part of the path generated from the class name.
xautoload_FinderPlugin_Interface $plugin: The plugin.
string $base_dir: Id under which the plugin should be registered. This may be a numeric id, or a string key.
Return value
int
Throws
Exception
File
- lib/
ClassFinder/ Helper/ Map.php, line 117
Class
- xautoload_ClassFinder_Helper_Map
- Helper class for the class finder. This is not part of ClassFinder, because we want to use the same logic for namespaces (PSR-0) and prefixes (PEAR).
Code
function registerPlugin($logical_base_path, $plugin, $base_dir = NULL) {
if (!isset($plugin)) {
throw new Exception("Second argument cannot be NULL.");
}
elseif (!is_a($plugin, 'xautoload_FinderPlugin_Interface')) {
throw new Exception("Second argument must implement xautoload_FinderPlugin_Interface.");
}
if (is_string($base_dir) && !is_numeric($base_dir)) {
$id = $base_dir;
}
elseif (!isset($this->plugins[$logical_base_path])) {
$id = $this->lastPluginIds[$logical_base_path] = 1;
}
else {
$id = ++$this->lastPluginIds[$logical_base_path];
}
$this->plugins[$logical_base_path][$id] = $plugin;
if (method_exists($plugin, 'setKillswitch')) {
// Give the plugin a red button to unregister or replace itself.
$plugin
->setKillswitch($plugin, $logical_base_path, $id);
}
return $id;
}