factory.yml ファイルに次の構成を設定しています...
all:
mailer:
param:
transport:
class: Swift_SendmailTransport
param:
command: /usr/sbin/sendmail -oi -t
...ここで説明されている「二重ドット」の問題を克服するため。
次のコードを実行すると...
$mailer = $this->getMailer();
$message = $mailer->compose();
$message->setTo('foo@bar.com');
$message->setFrom('foo@bar.com');
$message->setSubject('Testing');
$message->setBody(
$mailer->getRealtimeTransport()->getCommand(),
'text/plain'
);
$mailer->send($message);
...アクション内では、すべてが期待どおりに機能します。しかし、タスク内から同じコードを実行すると、致命的なエラーが発生します。これは、SwiftMailer が、factorys.yml構成で指定されたクラスPHP Fatal error: Call to undefined method getCommand
ではなく、デフォルトのトランスポート クラスを使用しているためです。Swift_SendmailTransport
factory.yml 構成が symfony タスクにロードされない理由と、この問題を解決するにはどうすればよいですか?