diff --git a/library/Zend/Mvc/Controller/PluginManager.php b/library/Zend/Mvc/Controller/PluginManager.php index be48e5aeb82..841268f1e07 100644 --- a/library/Zend/Mvc/Controller/PluginManager.php +++ b/library/Zend/Mvc/Controller/PluginManager.php @@ -81,12 +81,13 @@ public function __construct(ConfigInterface $configuration = null) * plugin is lost. * * @param string $cName + * @param array $options * @param array $params * @return mixed */ - public function get($name, $usePeeringServiceManagers = true) + public function get($name, $options = array(), $usePeeringServiceManagers = true) { - $plugin = parent::get($name, $usePeeringServiceManagers); + $plugin = parent::get($name, $options, $usePeeringServiceManagers); $this->injectController($plugin); return $plugin; } diff --git a/tests/ZendTest/Mvc/Controller/Plugin/TestAsset/SamplePluginWithConstructor.php b/tests/ZendTest/Mvc/Controller/Plugin/TestAsset/SamplePluginWithConstructor.php new file mode 100644 index 00000000000..57caca26e7e --- /dev/null +++ b/tests/ZendTest/Mvc/Controller/Plugin/TestAsset/SamplePluginWithConstructor.php @@ -0,0 +1,28 @@ +bar = $bar; + } + + public function getBar() + { + return $this->bar; + } +} diff --git a/tests/ZendTest/Mvc/Controller/PluginManagerTest.php b/tests/ZendTest/Mvc/Controller/PluginManagerTest.php index 6819973ec09..4e7dbf033be 100644 --- a/tests/ZendTest/Mvc/Controller/PluginManagerTest.php +++ b/tests/ZendTest/Mvc/Controller/PluginManagerTest.php @@ -13,6 +13,7 @@ use PHPUnit_Framework_TestCase as TestCase; use ZendTest\Mvc\Controller\TestAsset\SampleController; use ZendTest\Mvc\Controller\Plugin\TestAsset\SamplePlugin; +use ZendTest\Mvc\Controller\Plugin\TestAsset\SamplePluginWithConstructor; use Zend\Mvc\Controller\PluginManager; class PluginManagerTest extends TestCase @@ -54,4 +55,20 @@ public function testPluginManagerInjectsControllerForExistingPlugin() $plugin = $pluginManager->get('samplePlugin'); $this->assertEquals($controller2, $plugin->getController()); } + + public function testGetWithConstrutor() + { + $pluginManager = new PluginManager; + $pluginManager->setInvokableClass('samplePlugin', 'ZendTest\Mvc\Controller\Plugin\TestAsset\SamplePluginWithConstructor'); + $plugin = $pluginManager->get('samplePlugin'); + $this->assertEquals($plugin->getBar(), 'baz'); + } + + public function testGetWithConstrutorAndOptions() + { + $pluginManager = new PluginManager; + $pluginManager->setInvokableClass('samplePlugin', 'ZendTest\Mvc\Controller\Plugin\TestAsset\SamplePluginWithConstructor'); + $plugin = $pluginManager->get('samplePlugin', 'foo'); + $this->assertEquals($plugin->getBar(), 'foo'); + } }