Symfony 1.4.6 carga de la configuración factories.yml de tarea
-
30-09-2019 - |
Pregunta
Tengo el siguiente conjunto de configuración en mi archivo factories.yml ...
all:
mailer:
param:
transport:
class: Swift_SendmailTransport
param:
command: /usr/sbin/sendmail -oi -t
... para superar el problema de 'punto doble' como se describe aquí .
Al ejecutar el siguiente código ...
$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);
... dentro de una acción todo funciona como se esperaba. Pero cuando corro el mismo código desde el interior de una tarea, me sale un error fatal - PHP Fatal error: Call to undefined method getCommand
-. SwiftMailer porque está utilizando la clase de transporte por defecto y no a la clase Swift_SendmailTransport
como se especifica en la configuración factories.yml
Cualquier idea por qué la configuración factories.yml no está cargado en las tareas de Symfony, y cómo puedo ir sobre la solución de este problema?
Solución
Su tarea no saber qué aplicación de factories.yml a la carga - incluso si sólo tiene una sola aplicación. Es necesario para pasar un parámetro aplicación como esta:
php symfony namespace:task --application=frontend
Para tener una aplicación por defecto en su tarea, actualizar su configure de esta manera:
protected function configure()
{
$this->addOptions(array(
new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
));
}