Symfony 1.4.6 Загрузка фабрик. КОНФИЦИТАЦИЯМИ КОНФИГУРАЦИЯ С ЗАДАЧИ

StackOverflow https://stackoverflow.com/questions/3549110

Вопрос

У меня есть следующая конфигурация в моих фабриках. Myl file ...

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

... Чтобы преодолеть проблему «двойной точкой», как описано здесь.

Когда я запускаю следующий код ...

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

... внутри действия все работает, как ожидалось. Но когда я запускаю тот же код изнутри задачи, я получаю фатальную ошибку - PHP Fatal error: Call to undefined method getCommand - Потому что SWIFTMailer использует класс транспорта по умолчанию, а не Swift_SendmailTransport Класс, как указано в фабриках. Компанировка.

Любые идеи, почему фабрики. Confight Confight не загружены в задачу симфонии, и как я могу пойти на решение этой проблемы?

Это было полезно?

Решение

Ваша задача не знает, какие фабрики приложений.мля загружаются - даже если у вас есть только одно приложение. Вам нужно пройти параметр приложения, как это:

php symfony namespace:task --application=frontend

Чтобы иметь приложение по умолчанию в вашей задаче, обновите свою настройку:

protected function configure()
{
  $this->addOptions(array(
    new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
  ));
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top