/** * @return Container */ private function buildServices() { $application = $this->getApplication(); $services = new Container(); $services['project'] = function () { return new Project(); }; $services['executor'] = function () { return new Executor(); }; $services['composer'] = function (Container $services) { return new Composer($services['executor'], new BalloonFactory()); }; $services['helper_set'] = function () use($application) { return $application->getHelperSet(); }; $services['config'] = function () { return new Config(''); }; $services['alias_manager'] = function (Container $services) { $factory = new AliasManagerFactory(); return $factory->createFromConfig($services['config']); }; $services['module_manager'] = function (Container $services) { $factory = new ModuleManagerFactory(); return $factory->create($services['config']['module.path']); }; $services['module_procedure'] = function (Container $services) { return new ModuleProcedure($services['module_manager'], $services['composer'], $services['balloon_factory'], new ModulesSorter()); }; $services['balloon_factory'] = function () { return new BalloonFactory(); }; $services['git'] = function () { return new Git(); }; return $services; }
private function provideServices(Executor $executor, QuestionHelper $questionHelper = null) { $services = new Container(); $services['executor'] = function () use($executor) { return $executor; }; $services['composer'] = function (Container $services) { return new Composer($services['executor'], new BalloonFactory()); }; $services['helper_set'] = function () use($questionHelper) { return new HelperSet(['question' => $questionHelper]); }; $services['config'] = function () { return new Config(''); }; $services['module_manager'] = function (Container $services) { $factory = new ModuleManagerFactory(); return $factory->create($services['config']['module.path']); }; $services['module_procedure'] = function (Container $services) { return new ModuleProcedure($services['module_manager'], $services['composer'], $services['balloon_factory'], new ModulesSorter()); }; $services['balloon_factory'] = function () { return new BalloonFactory(); }; return $services; }