2014-01-16 4 views
0

Мы используем HWIOAuhtBundle для аутентификации поэтому имеют такой интерфейс провайдера пользователя:Как получить доступ к config.yml параметров в OAuthAwareUserProviderInterface

class OAuthUserProvider implements 
      UserProviderInterface , OAuthAwareUserProviderInterface 
    { 
     ... 
     public function loadUserByUsername($username) 
     { 
     ... 
     } 
     public function loadUserByOAuthUserResponse(UserResponseInterface $response) 
     { 
     ... 
     } 
    } 

Есть ли способ, чтобы получить доступ к параметрам, указанным в config.yml в методах класса OAuthUserProvider , например, идентификатор приложения facebook?

hwi_oauth: 
    resource_owners: 
     facebook: 
      type:    facebook 
      client_id:   %fb_app% 

или как получить доступ к ServiceContainer? А затем получите парм таким образом: http://symfony.com/doc/current/components/dependency_injection/parameters.html

ответ

0

Можно передать его как параметр конструктора OAuthUserProvider.

1) Добавьте аргумент в службу с правильным именем параметра.

;services.yml 

services: 
    my_user.oauth_user_provider: 
     class: %my_user.oauth_user_provider.class% 
     arguments: [%facebook_secret%] 

2) Добавить аргумент в класс ctor.

//OAuthUserProvider.php 

class OAuthUserProvider implements 
     UserProviderInterface , OAuthAwareUserProviderInterface 
{ 
    public function __construct($secret) 
    { 
     ... 
    } 
... 
}