public function testRegisterablePlugins() { $pluginManager = new PluginManager(__DIR__ . '/Registerable', 'Zumba\\Symbiosis\\Test\\Plugin\\Registerable'); $pluginManager->loadPlugins(); $expectedList = ['Zumba\\Symbiosis\\Test\\Plugin\\Registerable\\TestPlugin' => 1]; $this->assertEquals($expectedList, $pluginManager->getPluginList()); $event1 = new Event('register.1', array('called' => 0)); $event2 = new Event('register.2', array('called' => 0)); $pluginManager->trigger($event1); $pluginManager->trigger($event2); $this->assertEquals(['called' => 1], $event1->data()); $this->assertEquals(['called' => 2], $event2->data()); }
<?php use Zumba\Symbiosis\Plugin\PluginManager; // Somewhere in your application bootstrap, load your plugins PluginManager::loadPlugins('/path/to/your/plugin/directory', 'YourApp\\Plugin');