Adds a plugin instance to the handler.
public addPlugin ( string | Phergie_Plugin_Abstract $plugin, array $args = null ) : Phergie_Plugin_Abstract | ||
$plugin | string | Phergie_Plugin_Abstract | Short name of the plugin class or a plugin object |
$args | array | Optional array of arguments to pass to the plugin constructor if a short name is passed for $plugin |
return | Phergie_Plugin_Abstract | New plugin instance |
/** * addPlugin() returns the same plugin when requested twice * * @return void */ public function testAddPluginReturnsSamePluginWhenAskedTwice() { $plugin_name = 'Mock'; $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_'); $plugin1 = $this->handler->addPlugin($plugin_name); $plugin2 = $this->handler->addPlugin($plugin_name); $this->assertSame($plugin1, $plugin2); }
/** * Tests that multiple plugin iterators can be used concurrently. * * @return void */ public function testUseMultiplePluginIteratorsConcurrently() { $plugin1 = $this->getMockPlugin('TestPlugin1'); $this->handler->addPlugin($plugin1); $plugin2 = $this->getMockPlugin('TestPlugin2'); $this->handler->addPlugin($plugin2); $iterator1 = $this->handler->getIterator(); $iterator1->next(); $this->assertSame($plugin2, $iterator1->current()); $iterator2 = $this->handler->getIterator(); $this->assertSame($plugin1, $iterator2->current()); }