Frage

Ich habe folgenden Konfigurationssatz in meiner factories.yml Datei ...

all:
  mailer:
    param:
      transport:
        class: Swift_SendmailTransport
        param:
          command: /usr/sbin/sendmail -oi -t

... zur Überwindung der 'Doppelpunkt' Ausgabe wie hier .

Wenn ich den folgenden Code ausführen ...

$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);

... innerhalb einer Aktion funktioniert alles wie erwartet. Aber wenn ich den gleichen Code aus dem Innern einer Aufgabe ausführen, ich einen fatalen Fehler bekommen - PHP Fatal error: Call to undefined method getCommand -. Weil Swiftmailer die Standardtransportklasse wird und nicht mit der Swift_SendmailTransport Klasse wie in der factories.yml Konfiguration angegeben

Irgendwelche Ideen, warum die factories.yml Konfiguration nicht in einer symfony Aufgabe geladen wird, und wie ich über die Lösung dieses Problems gehen kann?

War es hilfreich?

Lösung

Ihre Aufgabe nicht weiß, welche Anwendung factories.yml zu Last - auch wenn Sie nur eine App hat. Sie benötigen einen Anwendungsparameter wie folgt weitergeben müssen:

php symfony namespace:task --application=frontend

Um eine Standard-App in Ihrer Aufgabe haben, aktualisieren Sie configure wie folgt aus:

protected function configure()
{
  $this->addOptions(array(
    new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
  ));
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top