symfony 1.4.6タスクからのファクトリーのロード.yml構成
-
30-09-2019 - |
質問
次の構成が私の工場に設定されています。
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);
...アクション内では、すべてが期待どおりに機能します。しかし、タスク内から同じコードを実行すると、致命的なエラーが発生します - PHP Fatal error: Call to undefined method getCommand
--SwiftMailerがデフォルトのトランスポートクラスを使用しており、 Swift_SendmailTransport
Factories.yml構成で指定されているクラス。
factories.yml構成がsymfonyタスクにロードされない理由、そしてこの問題を解決する方法はありますか?
解決
あなたのタスクは、あなたが1つのアプリしか持っていない場合でも、どのアプリケーションのFactories.ymlをロードするかを知りません。次のようなアプリケーションパラメーターを渡す必要があります。
php symfony namespace:task --application=frontend
タスクにデフォルトのアプリを作成するには、次のように構成を更新します。
protected function configure()
{
$this->addOptions(array(
new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
));
}
所属していません StackOverflow