From 41948423d3bd88e3b3c11464fec4786e8e0dc4cd Mon Sep 17 00:00:00 2001 From: Ben Scholzen Date: Sun, 15 May 2011 00:47:27 +0200 Subject: [PATCH] Renamed autoregisterPlugins to registerPluginsOnLoad and added unit tests --- src/PluginBroker.php | 22 +++++++++++----------- test/PluginBrokerTest.php | 13 +++++++++++++ 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/PluginBroker.php b/src/PluginBroker.php index dc5665d..51be9c4 100644 --- a/src/PluginBroker.php +++ b/src/PluginBroker.php @@ -42,9 +42,9 @@ class PluginBroker implements Broker protected $classLoader; /** - * @var boolean Whether plugins should be automatically registered + * @var boolean Whether plugins should be registered on load */ - protected $autoRegisterPlugins = true; + protected $registerPluginsOnLoad = true; /** * @var array Cache of loaded plugin instances @@ -144,8 +144,8 @@ public function setOptions($options) // been registered $plugins = $value; break; - case 'auto_register_plugins': - $this->setAutoRegisterPlugins($value); + case 'register_plugins_on_load': + $this->setRegisterPluginsOnLoad($value); break; case 'validator': $this->setValidator($value); @@ -199,7 +199,7 @@ public function load($plugin, array $options = null) $instance = $r->newInstanceArgs($options); } - if ($this->getAutoRegisterPlugins()) { + if ($this->getRegisterPluginsOnLoad()) { $this->register($pluginName, $instance); } @@ -293,25 +293,25 @@ public function getClassLoader() } /** - * Set if plugins should be atuomatically registered + * Set if plugins should be registered on load. * * @param boolean $flag * @return PluginBroker */ - public function setAutoRegisterPlugins($flag) + public function setRegisterPluginsOnLoad($flag) { - $this->autoRegisterPlugins = (bool) $flag; + $this->registerPluginsOnLoad = (bool) $flag; return $this; } /** - * Retrieve if plugins are automatically registered + * Retrieve if plugins are registered on load. * * @return boolean */ - public function getAutoRegisterPlugins() + public function getRegisterPluginsOnLoad() { - return $this->autoRegisterPlugins; + return $this->registerPluginsOnLoad; } /** diff --git a/test/PluginBrokerTest.php b/test/PluginBrokerTest.php index 80f8a3e..c8878f8 100644 --- a/test/PluginBrokerTest.php +++ b/test/PluginBrokerTest.php @@ -205,6 +205,19 @@ public function testIsLoadedReturnsTrueForRegisteredPlugin() $this->broker->register('sample', new TestAsset\SamplePlugin()); $this->assertTrue($this->broker->isLoaded('sample')); } + + public function testRegisterPluginsOnLoadDisabled() + { + $this->broker->setRegisterPluginsOnLoad(false); + + $loader = $this->broker->getClassLoader(); + $loader->registerPlugin('sample', 'ZendTest\Loader\TestAsset\SamplePlugin'); + + $plugin1 = $this->broker->load('sample'); + $plugin2 = $this->broker->load('sample'); + + $this->assertNotSame($plugin1, $plugin2); + } /** * Unsure if this is functionality we want to support; requires some form