public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig()];
     if ($provisioner_settings->has('logger')) {
         $logger_name = $provisioner_settings->get('logger', 'default');
         $logger = AgaviContext::getInstance()->getLoggerManager()->getLogger($logger_name)->getPsr3Logger();
         $state[':logger'] = $logger;
     }
     if ($provisioner_settings->has('connector')) {
         $connector_name = $provisioner_settings->get('connector', 'default');
         $connector_service = $this->di_container->make(ConnectorServiceInterface::CLASS);
         $state[':connector'] = $connector_service->getConnector($connector_name);
     }
     $this->di_container->define($service, $state);
     // there will only be one instance of the service when the "share" setting is true
     if ($provisioner_settings->get('share', true) === true) {
         $this->di_container->share($service);
     }
     if ($provisioner_settings->has('alias')) {
         $alias = $provisioner_settings->get('alias');
         if (!is_string($alias) && !class_exists($alias)) {
             throw new ConfigError('Alias given must be an existing class or interface name (fully qualified).');
         }
         $this->di_container->alias($alias, $service);
     }
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $view_templates_config = $this->loadViewTemplatesConfig();
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig(), ':view_templates_container_map' => $this->createViewTemplatesContainerMap($view_templates_config)];
     $this->di_container->define($service, $state)->share($service)->alias(ViewTemplateServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $view_config = $this->loadViewConfig();
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig(), ':view_config' => new ArrayConfig($view_config)];
     $this->di_container->alias(NameResolverInterface::CLASS, SubjectNameResolver::CLASS);
     $this->di_container->define($service, $state)->share($service)->alias(ViewConfigServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $service = $service_definition->getClass();
     $agavi_context = AgaviContext::getInstance();
     $logger_name = $provisioner_settings->get('logger_name', 'translation');
     $state = [':config' => $service_definition->getConfig(), ':tm' => $agavi_context->getTranslationManager(), ':logger' => $agavi_context->getLoggerManager()->getLogger($logger_name)->getPsr3Logger()];
     $this->di_container->define($service, $state)->share($service);
     $this->di_container->alias(TranslatorInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $factory_delegate = function () use($service_definition) {
         $migration_config = $this->loadMigrationConfig();
         $migration_target_map = $this->buildMigrationTargetMap($migration_config['targets']);
         $service_config = $service_definition->getConfig();
         $service_class = $service_definition->getClass();
         return new $service_class($service_config, $migration_target_map);
     };
     $service = $service_definition->getClass();
     $this->di_container->delegate($service, $factory_delegate)->share($service)->alias(MigrationServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $jobs_config = (include AgaviConfigCache::checkConfig(AgaviConfig::get('core.config_dir') . DIRECTORY_SEPARATOR . self::JOBS_CONFIG_FILE, AgaviContext::getInstance()->getName()));
     $service = $service_definition->getClass();
     $factory_delegate = function (ConnectorServiceInterface $connector_service, ServiceLocatorInterface $service_locator, EventBusInterface $event_bus, LoggerInterface $logger) use($service_definition, $provisioner_settings, $jobs_config) {
         $connector = $connector_service->getConnector($provisioner_settings->get('connection'));
         $config = $service_definition->getConfig();
         $service_class = $service_definition->getClass();
         return new $service_class($connector, $service_locator, $event_bus, new JobMap($jobs_config), $config, $logger);
     };
     $this->di_container->delegate($service, $factory_delegate)->share($service)->alias(JobServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $factory_delegate = function (AggregateRootTypeMap $aggregate_root_type_map) use($service_definition) {
         $fixture_config = $this->loadFixtureConfig();
         $fixture_target_map = $this->buildFixtureTargetMap($fixture_config['targets']);
         $service_config = $service_definition->getConfig();
         $service_class = $service_definition->getClass();
         return new $service_class($service_config, $fixture_target_map, $aggregate_root_type_map);
     };
     $service = $service_definition->getClass();
     $this->di_container->delegate($service, $factory_delegate)->share($service)->alias(FixtureServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $factory_delegate = function (DiContainer $di_container) use($service_definition, $provisioner_settings) {
         $config = $service_definition->getConfig();
         $logger_name = $provisioner_settings->get('logger', 'default');
         $logger = AgaviContext::getInstance()->getLoggerManager()->getLogger($logger_name)->getPsr3Logger();
         $builder_impl = $provisioner_settings->get('state_machine_builder', StateMachineBuilder::CLASS);
         $state_machine_builder = $di_container->make($builder_impl);
         $service_class = $service_definition->getClass();
         return new $service_class($config, $state_machine_builder, $logger);
     };
     $service = $service_definition->getClass();
     $this->di_container->delegate($service, $factory_delegate)->share($service)->alias(WorkflowServiceInterface::CLASS, $service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig(), ':query_translation' => $this->buildQueryTranslation($provisioner_settings)];
     $this->di_container->define($service, $state);
     // there will only be one instance of the service when the "share" setting is true
     if ($provisioner_settings->get('share', true) === true) {
         $this->di_container->share($service);
     }
     if ($provisioner_settings->has('alias')) {
         $alias = $provisioner_settings->get('alias');
         if (!is_string($alias) && !class_exists($alias)) {
             throw new ConfigError('Alias given must be an existing class or interface name (fully qualified).');
         }
         $this->di_container->alias($alias, $service);
     }
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig()];
     $this->di_container->define($service, $state)->share($service);
 }
 public function build(ServiceDefinitionInterface $service_definition, SettingsInterface $provisioner_settings)
 {
     $service = $service_definition->getClass();
     $state = [':config' => $service_definition->getConfig(), ':routing' => AgaviContext::getInstance()->getRouting()];
     $this->di_container->define($service, $state)->share($service)->alias(UrlGeneratorInterface::CLASS, $service);
 }