KnpU\OAuth2ClientBundle\DependencyInjection\KnpUOAuth2ClientExtension::configureProviderAndClient PHP Method

configureProviderAndClient() private method

private configureProviderAndClient ( ContainerBuilder $container, string $providerType, string $providerKey, string $providerClass, string $clientClass, string $packageName, array $options, string $redirectRoute, array $redirectParams, boolean $useState ) : string
$container Symfony\Component\DependencyInjection\ContainerBuilder
$providerType string The "type" used in the config - e.g. "facebook"
$providerKey string The config key used for this - e.g. "facebook_client", "my_facebook"
$providerClass string Provider class
$clientClass string Class to use for the Client
$packageName string Packagist package name required
$options array Options passed to when constructing the provider
$redirectRoute string Route name for the redirect URL
$redirectParams array Route params for the redirect URL
$useState boolean
return string The client service id
    private function configureProviderAndClient(ContainerBuilder $container, $providerType, $providerKey, $providerClass, $clientClass, $packageName, array $options, $redirectRoute, array $redirectParams, $useState)
    {
        if ($this->checkExternalClassExistence && !class_exists($providerClass)) {
            throw new \LogicException(sprintf('Run `composer require %s` in order to use the "%s" OAuth provider.', $packageName, $providerType));
        }
        $providerServiceKey = sprintf('knpu.oauth2.provider.%s', $providerKey);
        $providerDefinition = $container->register($providerServiceKey, $providerClass);
        $providerDefinition->setPublic(false);
        $providerDefinition->setFactory([new Reference('knpu.oauth2.provider_factory'), 'createProvider']);
        $providerDefinition->setArguments([$providerClass, $options, $redirectRoute, $redirectParams]);
        $clientServiceKey = sprintf('knpu.oauth2.client.%s', $providerKey);
        $clientDefinition = $container->register($clientServiceKey, $clientClass);
        $clientDefinition->setArguments([new Reference($providerServiceKey), new Reference('request_stack')]);
        // if stateless, do it!
        if (!$useState) {
            $clientDefinition->addMethodCall('setAsStateless');
        }
        return $clientServiceKey;
    }