Symfony 1.4.6 configuration de chargement factories.yml de tâche
-
30-09-2019 - |
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?
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'),
));
}