34e19abaf55fe7bc9f8194406ec81ef2e774f82b
[GitHub/Stricted/Domain-Control-Panel.git] / vendor / Zend / Mvc / Service / ModuleManagerFactory.php
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10 namespace Zend\Mvc\Service;
11
12 use Interop\Container\ContainerInterface;
13 use Zend\ModuleManager\Listener\DefaultListenerAggregate;
14 use Zend\ModuleManager\Listener\ListenerOptions;
15 use Zend\ModuleManager\ModuleEvent;
16 use Zend\ModuleManager\ModuleManager;
17 use Zend\ServiceManager\FactoryInterface;
18 use Zend\ServiceManager\ServiceLocatorInterface;
19
20 class ModuleManagerFactory implements FactoryInterface
21 {
22 /**
23 * Creates and returns the module manager
24 *
25 * Instantiates the default module listeners, providing them configuration
26 * from the "module_listener_options" key of the ApplicationConfig
27 * service. Also sets the default config glob path.
28 *
29 * Module manager is instantiated and provided with an EventManager, to which
30 * the default listener aggregate is attached. The ModuleEvent is also created
31 * and attached to the module manager.
32 *
33 * @param ContainerInterface $container
34 * @param string $name
35 * @param null|array $options
36 * @return ModuleManager
37 */
38 public function __invoke(ContainerInterface $container, $name, array $options = null)
39 {
40 $configuration = $container->get('ApplicationConfig');
41 $listenerOptions = new ListenerOptions($configuration['module_listener_options']);
42 $defaultListeners = new DefaultListenerAggregate($listenerOptions);
43 $serviceListener = $container->get('ServiceListener');
44
45 $serviceListener->addServiceManager(
46 $container,
47 'service_manager',
48 'Zend\ModuleManager\Feature\ServiceProviderInterface',
49 'getServiceConfig'
50 );
51
52 $serviceListener->addServiceManager(
53 'ControllerManager',
54 'controllers',
55 'Zend\ModuleManager\Feature\ControllerProviderInterface',
56 'getControllerConfig'
57 );
58 $serviceListener->addServiceManager(
59 'ControllerPluginManager',
60 'controller_plugins',
61 'Zend\ModuleManager\Feature\ControllerPluginProviderInterface',
62 'getControllerPluginConfig'
63 );
64 $serviceListener->addServiceManager(
65 'ViewHelperManager',
66 'view_helpers',
67 'Zend\ModuleManager\Feature\ViewHelperProviderInterface',
68 'getViewHelperConfig'
69 );
70 $serviceListener->addServiceManager(
71 'ValidatorManager',
72 'validators',
73 'Zend\ModuleManager\Feature\ValidatorProviderInterface',
74 'getValidatorConfig'
75 );
76 $serviceListener->addServiceManager(
77 'FilterManager',
78 'filters',
79 'Zend\ModuleManager\Feature\FilterProviderInterface',
80 'getFilterConfig'
81 );
82 $serviceListener->addServiceManager(
83 'FormElementManager',
84 'form_elements',
85 'Zend\ModuleManager\Feature\FormElementProviderInterface',
86 'getFormElementConfig'
87 );
88 $serviceListener->addServiceManager(
89 'RoutePluginManager',
90 'route_manager',
91 'Zend\ModuleManager\Feature\RouteProviderInterface',
92 'getRouteConfig'
93 );
94 $serviceListener->addServiceManager(
95 'SerializerAdapterManager',
96 'serializers',
97 'Zend\ModuleManager\Feature\SerializerProviderInterface',
98 'getSerializerConfig'
99 );
100 $serviceListener->addServiceManager(
101 'HydratorManager',
102 'hydrators',
103 'Zend\ModuleManager\Feature\HydratorProviderInterface',
104 'getHydratorConfig'
105 );
106 $serviceListener->addServiceManager(
107 'InputFilterManager',
108 'input_filters',
109 'Zend\ModuleManager\Feature\InputFilterProviderInterface',
110 'getInputFilterConfig'
111 );
112 $serviceListener->addServiceManager(
113 'LogProcessorManager',
114 'log_processors',
115 'Zend\ModuleManager\Feature\LogProcessorProviderInterface',
116 'getLogProcessorConfig'
117 );
118 $serviceListener->addServiceManager(
119 'LogWriterManager',
120 'log_writers',
121 'Zend\ModuleManager\Feature\LogWriterProviderInterface',
122 'getLogWriterConfig'
123 );
124 $serviceListener->addServiceManager(
125 'TranslatorPluginManager',
126 'translator_plugins',
127 'Zend\ModuleManager\Feature\TranslatorPluginProviderInterface',
128 'getTranslatorPluginConfig'
129 );
130
131 $events = $container->get('EventManager');
132 $defaultListeners->attach($events);
133 $serviceListener->attach($events);
134
135 $moduleEvent = new ModuleEvent;
136 $moduleEvent->setParam('ServiceManager', $container);
137
138 $moduleManager = new ModuleManager($configuration['modules'], $events);
139 $moduleManager->setEvent($moduleEvent);
140
141 return $moduleManager;
142 }
143
144 /**
145 * Create and return ModuleManager instance
146 *
147 * For use with zend-servicemanager v2; proxies to __invoke().
148 *
149 * @param ServiceLocatorInterface $container
150 * @return ModuleManager
151 */
152 public function createService(ServiceLocatorInterface $container)
153 {
154 return $this($container, ModuleManager::class);
155 }
156 }