سؤال

لدي مجموعة التكوين التالية في ملف المصانع. ملف ...

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 فئة كما هو محدد في المصانع. تكوين.

أي أفكار لماذا لا يتم تحميل تكوين المصانع.

هل كانت مفيدة؟

المحلول

لا تعرف مهمتك المصانع التي يجب تحميلها - حتى لو كان لديك تطبيق واحد فقط. تحتاج إلى تمرير معلمة تطبيق مثل هذا:

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