zendframework/zend-config-aggregator-modulemanager

Consume zend-mvc modules as configuration providers within zend-config-aggregator.

1.0.0 2018-04-04 19:12 UTC

README

Build Status Coverage Status

Provides an extension to the zendframework/zend-config-aggregator so zendframework/zend-mvc modules can be parsed into the new config structure, e.g. for zendframework/zend-expressive or other projects.

Usage

use Zend\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregatorModuleManager\ZendModuleProvider;
use My\Zend\MvcModule\Module as MyZendMvcModule;

namespace My\Zend\MvcModule
{
    class Module 
    {
        public function getConfig()
        {
            return [
                'service_manager' => [
                    'invokables' => [
                        Service\MyService::class => Service\MyService::class, 
                    ],
                ],
            ];
        }
    }
}

namespace My\Zend\MvcModule\Service {
    class MyService 
    {
    }
}

$aggregator = new ConfigAggregator([
    new ZendModuleProvider(new MyZendMvcModule()),
]);

var_dump($aggregator->getMergedConfig());

Using this provider, the Module class is being parsed for zendframework/zend-modulemanager interfaces or methods. Just the same way as zendframework/zend-mvc does. Therefore, the output of the example would be:

array(1) {
  'dependencies' => 
  array(1) {
    'invokables' =>
    array(1) {
       'My\Zend\MvcModule\Service\MyService' =>
       string(35) "My\Zend\MvcModule\Service\MyService"
    }
  }
}

For more details, please refer to the documentation.