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?

¿Fue útil?

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'),
  ));
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top