Domanda

Ho la seguente set di configurazione nel mio file factories.yml ...

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

... per superare il 'dot doppia' questione come descritto qui .

Quando eseguo il seguente codice ...

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

... all'interno di un'azione tutto funziona come previsto. Ma quando si esegue lo stesso codice da dentro un task, ottengo un errore fatale - PHP Fatal error: Call to undefined method getCommand -. Perché SwiftMailer sta utilizzando la classe di trasporto di default e non la classe Swift_SendmailTransport come specificato nella configurazione factories.yml

Tutte le idee perché la configurazione factories.yml non viene caricato in un task di symfony, e come posso fare per risolvere questo problema?

È stato utile?

Soluzione

Il vostro compito non sa quale applicazione di factories.yml a carico - anche se si dispone di una sola applicazione. È necessario passare un parametro domanda come questa:

php symfony namespace:task --application=frontend

Per avere un'applicazione di default nel vostro compito, aggiornare il configura in questo modo:

protected function configure()
{
  $this->addOptions(array(
    new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
  ));
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top