PageRenderTime 47ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/monica/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ModuleManagerFactory.php

https://bitbucket.org/alexandretaz/maniac_divers
PHP | 107 lines | 77 code | 9 blank | 21 comment | 1 complexity | b72e68ad0d5cf3773a0145c4d7b358ad MD5 | raw file
Possible License(s): BSD-3-Clause
  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-2013 Zend Technologies USA Inc. (http://www.zend.com)
  7. * @license http://framework.zend.com/license/new-bsd New BSD License
  8. */
  9. namespace Zend\Mvc\Service;
  10. use Zend\ModuleManager\Listener\DefaultListenerAggregate;
  11. use Zend\ModuleManager\Listener\ListenerOptions;
  12. use Zend\ModuleManager\ModuleEvent;
  13. use Zend\ModuleManager\ModuleManager;
  14. use Zend\ServiceManager\FactoryInterface;
  15. use Zend\ServiceManager\ServiceLocatorInterface;
  16. class ModuleManagerFactory implements FactoryInterface
  17. {
  18. /**
  19. * Creates and returns the module manager
  20. *
  21. * Instantiates the default module listeners, providing them configuration
  22. * from the "module_listener_options" key of the ApplicationConfig
  23. * service. Also sets the default config glob path.
  24. *
  25. * Module manager is instantiated and provided with an EventManager, to which
  26. * the default listener aggregate is attached. The ModuleEvent is also created
  27. * and attached to the module manager.
  28. *
  29. * @param ServiceLocatorInterface $serviceLocator
  30. * @return ModuleManager
  31. */
  32. public function createService(ServiceLocatorInterface $serviceLocator)
  33. {
  34. if (!$serviceLocator->has('ServiceListener')) {
  35. $serviceLocator->setFactory('ServiceListener', 'Zend\Mvc\Service\ServiceListenerFactory');
  36. }
  37. $configuration = $serviceLocator->get('ApplicationConfig');
  38. $listenerOptions = new ListenerOptions($configuration['module_listener_options']);
  39. $defaultListeners = new DefaultListenerAggregate($listenerOptions);
  40. $serviceListener = $serviceLocator->get('ServiceListener');
  41. $serviceListener->addServiceManager(
  42. $serviceLocator,
  43. 'service_manager',
  44. 'Zend\ModuleManager\Feature\ServiceProviderInterface',
  45. 'getServiceConfig'
  46. );
  47. $serviceListener->addServiceManager(
  48. 'ControllerLoader',
  49. 'controllers',
  50. 'Zend\ModuleManager\Feature\ControllerProviderInterface',
  51. 'getControllerConfig'
  52. );
  53. $serviceListener->addServiceManager(
  54. 'ControllerPluginManager',
  55. 'controller_plugins',
  56. 'Zend\ModuleManager\Feature\ControllerPluginProviderInterface',
  57. 'getControllerPluginConfig'
  58. );
  59. $serviceListener->addServiceManager(
  60. 'ViewHelperManager',
  61. 'view_helpers',
  62. 'Zend\ModuleManager\Feature\ViewHelperProviderInterface',
  63. 'getViewHelperConfig'
  64. );
  65. $serviceListener->addServiceManager(
  66. 'ValidatorManager',
  67. 'validators',
  68. 'Zend\ModuleManager\Feature\ValidatorProviderInterface',
  69. 'getValidatorConfig'
  70. );
  71. $serviceListener->addServiceManager(
  72. 'FilterManager',
  73. 'filters',
  74. 'Zend\ModuleManager\Feature\FilterProviderInterface',
  75. 'getFilterConfig'
  76. );
  77. $serviceListener->addServiceManager(
  78. 'FormElementManager',
  79. 'form_elements',
  80. 'Zend\ModuleManager\Feature\FormElementProviderInterface',
  81. 'getFormElementConfig'
  82. );
  83. $serviceListener->addServiceManager(
  84. 'RoutePluginManager',
  85. 'route_manager',
  86. 'Zend\ModuleManager\Feature\RouteProviderInterface',
  87. 'getRouteConfig'
  88. );
  89. $events = $serviceLocator->get('EventManager');
  90. $events->attach($defaultListeners);
  91. $events->attach($serviceListener);
  92. $moduleEvent = new ModuleEvent;
  93. $moduleEvent->setParam('ServiceManager', $serviceLocator);
  94. $moduleManager = new ModuleManager($configuration['modules'], $events);
  95. $moduleManager->setEvent($moduleEvent);
  96. return $moduleManager;
  97. }
  98. }