14
14
use Zend \ModuleManager \Listener \ServiceListenerInterface ;
15
15
use Zend \Mvc \View ;
16
16
use Zend \ServiceManager \Exception \ServiceNotCreatedException ;
17
- use Zend \ServiceManager \Factory \ FactoryInterface ;
17
+ use Zend \ServiceManager \FactoryInterface ;
18
18
use Zend \ServiceManager \Factory \InvokableFactory ;
19
19
20
20
class ServiceListenerFactory implements FactoryInterface
@@ -36,14 +36,33 @@ class ServiceListenerFactory implements FactoryInterface
36
36
* @var array
37
37
*/
38
38
protected $ defaultServiceConfig = [
39
- 'invokables ' => [
40
- 'MiddlewareListener ' => 'Zend\Mvc\MiddlewareListener ' ,
41
- 'RouteListener ' => 'Zend\Mvc\RouteListener ' ,
42
- 'SendResponseListener ' => 'Zend\Mvc\SendResponseListener ' ,
43
- 'ViewJsonRenderer ' => 'Zend\View\Renderer\JsonRenderer ' ,
44
- 'ViewFeedRenderer ' => 'Zend\View\Renderer\FeedRenderer ' ,
39
+ 'aliases ' => [
40
+ 'Config ' => 'config ' ,
41
+ 'Configuration ' => 'config ' ,
42
+ 'configuration ' => 'config ' ,
43
+ 'Console ' => 'ConsoleAdapter ' ,
44
+ 'ConsoleDefaultRenderingStrategy ' => View \Console \DefaultRenderingStrategy::class,
45
+ 'HttpDefaultRenderingStrategy ' => View \Http \DefaultRenderingStrategy::class,
46
+ 'MiddlewareListener ' => 'Zend\Mvc\MiddlewareListener ' ,
47
+ 'RouteListener ' => 'Zend\Mvc\RouteListener ' ,
48
+ 'SendResponseListener ' => 'Zend\Mvc\SendResponseListener ' ,
49
+ 'View ' => 'Zend\View\View ' ,
50
+ 'ViewFeedRenderer ' => 'Zend\View\Renderer\FeedRenderer ' ,
51
+ 'ViewJsonRenderer ' => 'Zend\View\Renderer\JsonRenderer ' ,
52
+ 'ViewPhpRendererStrategy ' => 'Zend\View\Strategy\PhpRendererStrategy ' ,
53
+ 'ViewPhpRenderer ' => 'Zend\View\Renderer\PhpRenderer ' ,
54
+ 'ViewRenderer ' => 'Zend\View\Renderer\PhpRenderer ' ,
55
+ 'Zend\Form\Annotation\FormAnnotationBuilder ' => 'FormAnnotationBuilder ' ,
56
+ 'Zend\Mvc\Controller\PluginManager ' => 'ControllerPluginManager ' ,
57
+ 'Zend\Mvc\View\Http\InjectTemplateListener ' => 'InjectTemplateListener ' ,
58
+ 'Zend\View\Renderer\RendererInterface ' => 'Zend\View\Renderer\PhpRenderer ' ,
59
+ 'Zend\View\Resolver\TemplateMapResolver ' => 'ViewTemplateMapResolver ' ,
60
+ 'Zend\View\Resolver\TemplatePathStack ' => 'ViewTemplatePathStack ' ,
61
+ 'Zend\View\Resolver\AggregateResolver ' => 'ViewResolver ' ,
62
+ 'Zend\View\Resolver\ResolverInterface ' => 'ViewResolver ' ,
45
63
],
46
- 'factories ' => [
64
+ 'invokables ' => [],
65
+ 'factories ' => [
47
66
'Application ' => 'Zend\Mvc\Service\ApplicationFactory ' ,
48
67
'config ' => 'Zend\Mvc\Service\ConfigFactory ' ,
49
68
'ControllerManager ' => 'Zend\Mvc\Service\ControllerManagerFactory ' ,
@@ -86,56 +105,40 @@ class ServiceListenerFactory implements FactoryInterface
86
105
'ViewTemplateMapResolver ' => 'Zend\Mvc\Service\ViewTemplateMapResolverFactory ' ,
87
106
'ViewTemplatePathStack ' => 'Zend\Mvc\Service\ViewTemplatePathStackFactory ' ,
88
107
'ViewPrefixPathStackResolver ' => 'Zend\Mvc\Service\ViewPrefixPathStackResolverFactory ' ,
108
+ 'Zend\Mvc\MiddlewareListener ' => InvokableFactory::class,
109
+ 'Zend\Mvc\RouteListener ' => InvokableFactory::class,
110
+ 'Zend\Mvc\SendResponseListener ' => InvokableFactory::class,
111
+ 'Zend\View\Renderer\FeedRenderer ' => InvokableFactory::class,
112
+ 'Zend\View\Renderer\JsonRenderer ' => InvokableFactory::class,
89
113
'Zend\View\Renderer\PhpRenderer ' => ViewPhpRendererFactory::class,
90
114
'Zend\View\Strategy\PhpRendererStrategy ' => ViewPhpRendererStrategyFactory::class,
91
115
'Zend\View\View ' => ViewFactory::class,
92
116
],
93
- 'aliases ' => [
94
- 'Config ' => 'config ' ,
95
- 'Configuration ' => 'config ' ,
96
- 'configuration ' => 'config ' ,
97
- 'Console ' => 'ConsoleAdapter ' ,
98
- 'ConsoleDefaultRenderingStrategy ' => View \Console \DefaultRenderingStrategy::class,
99
- 'HttpDefaultRenderingStrategy ' => View \Http \DefaultRenderingStrategy::class,
100
- 'View ' => 'Zend\View\View ' ,
101
- 'ViewPhpRendererStrategy ' => 'Zend\View\Strategy\PhpRendererStrategy ' ,
102
- 'ViewPhpRenderer ' => 'Zend\View\Renderer\PhpRenderer ' ,
103
- 'ViewRenderer ' => 'Zend\View\Renderer\PhpRenderer ' ,
104
- 'Zend\Form\Annotation\FormAnnotationBuilder ' => 'FormAnnotationBuilder ' ,
105
- 'Zend\Mvc\Controller\PluginManager ' => 'ControllerPluginManager ' ,
106
- 'Zend\Mvc\View\Http\InjectTemplateListener ' => 'InjectTemplateListener ' ,
107
- 'Zend\View\Renderer\RendererInterface ' => 'Zend\View\Renderer\PhpRenderer ' ,
108
- 'Zend\View\Resolver\TemplateMapResolver ' => 'ViewTemplateMapResolver ' ,
109
- 'Zend\View\Resolver\TemplatePathStack ' => 'ViewTemplatePathStack ' ,
110
- 'Zend\View\Resolver\AggregateResolver ' => 'ViewResolver ' ,
111
- 'Zend\View\Resolver\ResolverInterface ' => 'ViewResolver ' ,
112
- ],
113
- /*
114
117
'abstract_factories ' => [
115
118
'Zend\Form\FormAbstractServiceFactory ' ,
116
119
],
117
- */
118
120
];
119
121
120
122
/**
121
123
* Create the service listener service
122
124
*
123
125
* Tries to get a service named ServiceListenerInterface from the service
124
- * locator, otherwise creates a Zend\ModuleManager\Listener\ ServiceListener
125
- * service, passing it the service locator instance and the default service
126
- * configuration, which can be overridden by modules.
126
+ * locator, otherwise creates a ServiceListener instance, passing it the
127
+ * container instance and the default service configuration, which can be
128
+ * overridden by modules.
127
129
*
128
130
* It looks for the 'service_listener_options' key in the application
129
- * config and tries to add service manager as configured. The value of
130
- * 'service_listener_options' must be a list (array) which contains the
131
+ * config and tries to add service/plugin managers as configured. The value
132
+ * of 'service_listener_options' must be a list (array) which contains the
131
133
* following keys:
132
- * - service_manager: the name of the service manage to create as string
133
- * - config_key: the name of the configuration key to search for as string
134
- * - interface: the name of the interface that modules can implement as string
135
- * - method: the name of the method that modules have to implement as string
134
+ *
135
+ * - service_manager: the name of the service manage to create as string
136
+ * - config_key: the name of the configuration key to search for as string
137
+ * - interface: the name of the interface that modules can implement as string
138
+ * - method: the name of the method that modules have to implement as string
136
139
*
137
140
* @param ServiceLocatorInterface $serviceLocator
138
- * @return ServiceListener
141
+ * @return ServiceListenerInterface
139
142
* @throws ServiceNotCreatedException for invalid ServiceListener service
140
143
* @throws ServiceNotCreatedException For invalid configurations.
141
144
*/
@@ -149,8 +152,8 @@ public function __invoke(ContainerInterface $container, $requestedName, array $o
149
152
150
153
if (! $ serviceListener instanceof ServiceListenerInterface) {
151
154
throw new ServiceNotCreatedException (
152
- 'The service named ServiceListenerInterface must implement ' .
153
- ' Zend\ModuleManager\Listener\ ServiceListenerInterface'
155
+ 'The service named ServiceListenerInterface must implement '
156
+ . ServiceListenerInterface::class
154
157
);
155
158
}
156
159
@@ -161,6 +164,17 @@ public function __invoke(ContainerInterface $container, $requestedName, array $o
161
164
return $ serviceListener ;
162
165
}
163
166
167
+ /**
168
+ * Create and return the ServiceListener (v2)
169
+ *
170
+ * @param ServiceLocatorInterface $container
171
+ * @return ServiceListenerInterface
172
+ */
173
+ public function createService (ServiceLocatorInterface $ container )
174
+ {
175
+ return $ this ($ container , ServiceListener::class);
176
+ }
177
+
164
178
/**
165
179
* Validate and inject plugin manager options into the service listener.
166
180
*
0 commit comments