mirror of
https://github.com/torrentpier/torrentpier-lts.git
synced 2025-02-28 15:10:54 +03:00
144 lines
5.2 KiB
PHP
144 lines
5.2 KiB
PHP
<?php
|
|
/**
|
|
* Zend Framework (http://framework.zend.com/)
|
|
*
|
|
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
|
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
|
* @license http://framework.zend.com/license/new-bsd New BSD License
|
|
*/
|
|
|
|
namespace Zend\Mvc\Service;
|
|
|
|
use Zend\ModuleManager\Listener\DefaultListenerAggregate;
|
|
use Zend\ModuleManager\Listener\ListenerOptions;
|
|
use Zend\ModuleManager\ModuleEvent;
|
|
use Zend\ModuleManager\ModuleManager;
|
|
use Zend\ServiceManager\FactoryInterface;
|
|
use Zend\ServiceManager\ServiceLocatorInterface;
|
|
|
|
class ModuleManagerFactory implements FactoryInterface
|
|
{
|
|
/**
|
|
* Creates and returns the module manager
|
|
*
|
|
* Instantiates the default module listeners, providing them configuration
|
|
* from the "module_listener_options" key of the ApplicationConfig
|
|
* service. Also sets the default config glob path.
|
|
*
|
|
* Module manager is instantiated and provided with an EventManager, to which
|
|
* the default listener aggregate is attached. The ModuleEvent is also created
|
|
* and attached to the module manager.
|
|
*
|
|
* @param ServiceLocatorInterface $serviceLocator
|
|
* @return ModuleManager
|
|
*/
|
|
public function createService(ServiceLocatorInterface $serviceLocator)
|
|
{
|
|
if (!$serviceLocator->has('ServiceListener')) {
|
|
$serviceLocator->setFactory('ServiceListener', 'Zend\Mvc\Service\ServiceListenerFactory');
|
|
}
|
|
|
|
$configuration = $serviceLocator->get('ApplicationConfig');
|
|
$listenerOptions = new ListenerOptions($configuration['module_listener_options']);
|
|
$defaultListeners = new DefaultListenerAggregate($listenerOptions);
|
|
$serviceListener = $serviceLocator->get('ServiceListener');
|
|
|
|
$serviceListener->addServiceManager(
|
|
$serviceLocator,
|
|
'service_manager',
|
|
'Zend\ModuleManager\Feature\ServiceProviderInterface',
|
|
'getServiceConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'ControllerLoader',
|
|
'controllers',
|
|
'Zend\ModuleManager\Feature\ControllerProviderInterface',
|
|
'getControllerConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'ControllerPluginManager',
|
|
'controller_plugins',
|
|
'Zend\ModuleManager\Feature\ControllerPluginProviderInterface',
|
|
'getControllerPluginConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'ViewHelperManager',
|
|
'view_helpers',
|
|
'Zend\ModuleManager\Feature\ViewHelperProviderInterface',
|
|
'getViewHelperConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'ValidatorManager',
|
|
'validators',
|
|
'Zend\ModuleManager\Feature\ValidatorProviderInterface',
|
|
'getValidatorConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'FilterManager',
|
|
'filters',
|
|
'Zend\ModuleManager\Feature\FilterProviderInterface',
|
|
'getFilterConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'FormElementManager',
|
|
'form_elements',
|
|
'Zend\ModuleManager\Feature\FormElementProviderInterface',
|
|
'getFormElementConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'RoutePluginManager',
|
|
'route_manager',
|
|
'Zend\ModuleManager\Feature\RouteProviderInterface',
|
|
'getRouteConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'SerializerAdapterManager',
|
|
'serializers',
|
|
'Zend\ModuleManager\Feature\SerializerProviderInterface',
|
|
'getSerializerConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'HydratorManager',
|
|
'hydrators',
|
|
'Zend\ModuleManager\Feature\HydratorProviderInterface',
|
|
'getHydratorConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'InputFilterManager',
|
|
'input_filters',
|
|
'Zend\ModuleManager\Feature\InputFilterProviderInterface',
|
|
'getInputFilterConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'LogProcessorManager',
|
|
'log_processors',
|
|
'Zend\ModuleManager\Feature\LogProcessorProviderInterface',
|
|
'getLogProcessorConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'LogWriterManager',
|
|
'log_writers',
|
|
'Zend\ModuleManager\Feature\LogWriterProviderInterface',
|
|
'getLogWriterConfig'
|
|
);
|
|
$serviceListener->addServiceManager(
|
|
'TranslatorPluginManager',
|
|
'translator_plugins',
|
|
'Zend\ModuleManager\Feature\TranslatorPluginProviderInterface',
|
|
'getTranslatorPluginConfig'
|
|
);
|
|
|
|
$events = $serviceLocator->get('EventManager');
|
|
$events->attach($defaultListeners);
|
|
$events->attach($serviceListener);
|
|
|
|
$moduleEvent = new ModuleEvent;
|
|
$moduleEvent->setParam('ServiceManager', $serviceLocator);
|
|
|
|
$moduleManager = new ModuleManager($configuration['modules'], $events);
|
|
$moduleManager->setEvent($moduleEvent);
|
|
|
|
return $moduleManager;
|
|
}
|
|
}
|