-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPluginManager.php
More file actions
38 lines (34 loc) · 1018 Bytes
/
PluginManager.php
File metadata and controls
38 lines (34 loc) · 1018 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
class PluginManager extends ArrayObject
{
public function execPlugins($location)
{
$pluginIterator = $this->getIterator();
while ($pluginIterator->valid()) {
if (in_array($pluginIterator->key(), (array) $location) || $location == "all") {
$plug = $this->offsetGet($pluginIterator->key()); // ->current() is the value of the KVP you get while iterating.
if ($plug) {
$plug->pluginMain();
} else {
throw new Exception ("Error executing plugin $plug\n");
}
}
$pluginIterator->next();
}
}
public function execPluginByName($plugin)
{
$plug = $this->offsetGet($plugin);
if(!$plug){
throw new Exception ("Error executing plugin $plugin\n");
} else {
$plug->pluginMain();
}
}
public function unregisterPlugin($plugin)
{
$plug = $this->offsetGet($plugin);
$plug->unregister();
$this->offsetUnset($plugin);
}
}