diff --git a/src/LaminasModuleProvider.php b/src/LaminasModuleProvider.php index 0450a51..3fdd167 100644 --- a/src/LaminasModuleProvider.php +++ b/src/LaminasModuleProvider.php @@ -21,6 +21,7 @@ use Laminas\ModuleManager\Feature\SerializerProviderInterface; use Laminas\ModuleManager\Feature\ServiceProviderInterface; use Laminas\ModuleManager\Feature\ValidatorProviderInterface; +use Laminas\ModuleManager\Feature\ViewHelperProviderInterface; use Traversable; /** @@ -62,6 +63,7 @@ public function __invoke() : array 'hydrators' => $this->getHydratorConfig(), 'input_filters' => $this->getInputFilterConfig(), 'serializers' => $this->getSerializerConfig(), + 'view_helpers' => $this->getViewHelperConfig(), ])); } @@ -177,7 +179,7 @@ public function getHydratorConfig() : array return $this->convert($this->module->getHydratorConfig()); } - public function getInputFilterConfig() + public function getInputFilterConfig() /* : array */ { if (! $this->module instanceof InputFilterProviderInterface) { return []; @@ -194,4 +196,13 @@ public function getSerializerConfig() : array return $this->convert($this->module->getSerializerConfig()); } + + public function getViewHelperConfig() : array + { + if (! $this->module instanceof ViewHelperProviderInterface) { + return []; + } + + return $this->convert($this->module->getViewHelperConfig()); + } } diff --git a/test/LaminasModuleProviderTest.php b/test/LaminasModuleProviderTest.php index fc18c1c..630358a 100644 --- a/test/LaminasModuleProviderTest.php +++ b/test/LaminasModuleProviderTest.php @@ -19,6 +19,7 @@ use Laminas\ModuleManager\Feature\RouteProviderInterface; use Laminas\ModuleManager\Feature\SerializerProviderInterface; use Laminas\ModuleManager\Feature\ValidatorProviderInterface; +use Laminas\ModuleManager\Feature\ViewHelperProviderInterface; use LaminasTest\ConfigAggregatorModuleManager\Resources\LaminasModule; use LaminasTest\ConfigAggregatorModuleManager\Resources\LaminasModuleWithInvalidConfiguration; use LaminasTest\ConfigAggregatorModuleManager\Resources\LaminasModuleWithLaminasConfig; @@ -148,6 +149,21 @@ public function testCanProvideSerializersFromSerializerProviderInterface() $this->assertSame($this->createServiceManagerConfiguration(), $config['serializers']); } + public function testCanProviderViewHelpersFromViewHelperProviderInterface() + { + $module = $this->createMock(ViewHelperProviderInterface::class); + $module + ->expects($this->once()) + ->method('getViewHelperConfig') + ->willReturn($this->createServiceManagerConfiguration()); + + $provider = new LaminasModuleProvider($module); + + $config = $provider(); + $this->assertArrayHasKey('view_helpers', $config); + $this->assertSame($this->createServiceManagerConfiguration(), $config['view_helpers']); + } + public function testCanProvideAnyConfigValue() { $module = new LaminasModule(); @@ -191,7 +207,7 @@ public function testCanHandleModulesWithTraversableConfiguration() $this->assertSame($this->createServiceManagerConfiguration(), $config['dependencies']); } - public function testCanHandleModuelsWithLaminasConfigConfiguration() + public function testCanHandleModulesWithLaminasConfigConfiguration() { $module = new LaminasModuleWithTraversableConfig(); $provider = new LaminasModuleProvider($module);