2017-08-15 28 views
1

我想在我的服務類mailer 使用參數parameters.yml但我得到這個錯誤,而實例化的郵件類:Symfony:如何在服務類中使用配置參數?

$mailer = new Mailer(); 

知道該參數在parameters.yml定義:

警告:缺少AppBundle \ Service \ Mailer :: __構造()的參數1,在

中調用
namespace AppBundle\Service 


class Mailer 
{ 
private $mailer_user; 
private $mailer_password; 
private $mailer_name; 
private $mailer_host; 
public function __construct($mailer_user, $mailer_password ,$mailer_name ,$mailer_host) 
{ 
    $this->mailer_name = $mailer_user; 
    $this->mailer_password = $mailer_password; 
    $this->mailer_user = $mailer_name; 
    $this->mailer_host = $mailer_host; 
} 
//..... 
} 

services.yml:

mailer: 
    class: 'AppBundle\Service\Mailer' 
    arguments: [%mailer_user%, %mailer_password% ,%mailer_name% ,%mailer_host%] 
+1

您應指定你得到了什麼錯誤(一些異常或什麼),因爲「_doesnt WORK_」是不是足夠多? 。 PS:你應該從參數值和服務參數'%$ mailer_host%'中刪除美元符號(這是一個錯字?)。 –

+0

@gp_sflover是否是正確的做法?錯誤=>哎呀,看起來像是出了問題。 – Achraf

+1

你爲什麼要重複services.yml中的郵件參數?或者,這只是一種複製/粘貼的東西? – Cerad

回答

1

要了解「我怎麼可以使用parameters.yml的參數在我的服務類」(,看看如何服務可以在Symfony的應用使用)剛看完的Symfony文檔關注文檔的版本的Symfony你正在閱讀

BTW你不應該實例化直接像你這樣一個服務類:

$mailer = new Mailer(); 

但檢索服務Container服務實例(的Symfony會照顧自動注入所有配置的依賴關係),就像我們通常在Controller中執行的那樣(下面的示例訪問Ser使用提供延長由FrameworkBundle提供的基本控制器短碼副列入的Symfony的標準版本):

$mailer = $this->container->get('mailer');