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); }