/**
* @param Piwik_Plugin $plugin
* @return void
*/
public function unloadPlugin($plugin)
{
if (!$plugin instanceof Piwik_Plugin) {
$plugin = $this->loadPlugin($plugin);
}
$hooks = $plugin->getListHooksRegistered();
foreach ($hooks as $hookName => $methodToCall) {
$success = $this->dispatcher->removeObserver(array($plugin, $methodToCall), $hookName);
if ($success !== true) {
throw new Exception("Error unloading plugin = " . $plugin->getClassName() . ", method = {$methodToCall}, hook = {$hookName} ");
}
}
unset($this->loadedPlugins[$plugin->getClassName()]);
}