2017-05-29 74 views
0

有沒有一種方法可以從控制器設置令牌參數?從控制器Symfony設置services.yml參數

app.oauth_subscriber: 
    class: GuzzleHttp\Subscriber\Oauth\Oauth1 
    arguments: 
     - consumer_key: 'test' 
      private_key_file: '../app/config/test.pem' 
      private_key_passphrase: null 
      signature_method: !php/const:GuzzleHttp\Subscriber\Oauth\Oauth1::SIGNATURE_METHOD_RSA 
      token: "@=service('security.token_storage').getToken().getUser().getToken().getAccessToken()" 

我能得到這樣的服務:

$this->container->get('app.oauth_subscriber'); 

回答

0

我不知道,你可以用維修廠做不做的問題,但如果你不需要令牌__construct你可以刪除它來自服務參數並在服務中聲明新的方法,如setToken(),並在控制器中用它來設置令牌。

// Service 
private $token; 

public function setToken($token){ 
    $this->token = $token; 
} 

並使用$this->token在您的服務中使用它。

// Controller 
$myService = $this->container->get('app.oauth_subscriber'); 
$myService->setToken('token'); 

這只是一個答案。任何更好的解決方案都可以存在

相關問題