Question

je l'ensemble de configuration suivante dans mon fichier factories.yml ...

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

... remédier à la question 'double point' comme décrit ici .

Quand je lance le code suivant ...

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

... à l'intérieur d'un tout l'action fonctionne comme prévu. Mais quand je lance le même code à l'intérieur d'une tâche, je reçois une erreur fatale - PHP Fatal error: Call to undefined method getCommand -. Parce que SwiftMailer utilise la classe de transport par défaut et non la classe Swift_SendmailTransport comme spécifié dans la configuration factories.yml

Toutes les idées pourquoi la configuration factories.yml est pas chargé dans une tâche de symfony, et comment je peux prendre pour résoudre ce problème?

Était-ce utile?

La solution

Votre tâche ne sait pas que le factories.yml de l'application à la charge - même si vous avez seulement une application. Vous devez passer un paramètre d'application comme ceci:

php symfony namespace:task --application=frontend

Pour avoir une application par défaut dans votre tâche, mettez à jour votre configuration comme ceci:

protected function configure()
{
  $this->addOptions(array(
    new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
  ));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top