Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Application.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Setup;
7 
8 use Zend\Mvc\Application as ZendApplication;
9 use Zend\Mvc\Service\ServiceManagerConfig;
10 use Zend\ServiceManager\ServiceManager;
11 
17 {
26  public function bootstrap(array $configuration)
27  {
28  $managerConfig = isset($configuration['service_manager']) ? $configuration['service_manager'] : [];
29  $managerConfig = new ServiceManagerConfig($managerConfig);
30 
31  $serviceManager = new ServiceManager();
32  $managerConfig->configureServiceManager($serviceManager);
33  $serviceManager->setService('ApplicationConfig', $configuration);
34 
35  $serviceManager->get('ModuleManager')->loadModules();
36 
37  // load specific services
38  if (!empty($configuration['required_services'])) {
39  $this->loadServices($serviceManager, $configuration['required_services']);
40  }
41 
42  $listeners = $this->getListeners($serviceManager, $configuration);
43  $application = new ZendApplication(
45  $serviceManager,
46  $serviceManager->get('EventManager'),
47  $serviceManager->get('Request'),
48  $serviceManager->get('Response')
49  );
50  $application->bootstrap($listeners);
51  return $application;
52  }
53 
63  private function loadServices(ServiceManager $serviceManager, array $services)
64  {
65  foreach ($services as $serviceName) {
66  $serviceManager->get($serviceName);
67  }
68  }
69 
77  private function getListeners(ServiceManager $serviceManager, array $configuration)
78  {
79  $appConfigListeners = isset($configuration['listeners']) ? $configuration['listeners'] : [];
80  $config = $serviceManager->get('config');
81  $serviceConfigListeners = isset($config['listeners']) ? $config['listeners'] : [];
82 
83  return array_unique(array_merge($serviceConfigListeners, $appConfigListeners));
84  }
85 }
$configuration
Definition: index.php:33
$config
Definition: fraud_order.php:17
bootstrap(array $configuration)
Definition: Application.php:26
$application
Definition: bootstrap.php:58