编程语言
首页 > 编程语言> > php-从symfony任务获取应用程序/模块上下文

php-从symfony任务获取应用程序/模块上下文

作者:互联网

我已经编写了一个报告套件,并且有一个生成CSV文件的特定报告.通过浏览器按需提供此文件不是问题,但我需要能够每晚构建此CSV文件,并通过电子邮件发送链接以下载该文件.

本质上,我需要能够用通过cron运行的symfony任务替换特定的动作.那么,如何从symfony任务中获取应用程序/模块上下文呢?其次,如何从symfony任务中调用SwiftMailer库?

我正在使用symfony v1.4.4和PHP v.5.2.13.

解决方法:

在任务的configure()函数中,您需要定义任务中涉及的应用程序:

$this->addOptions(array(
  new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name','frontend'),
  new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
  new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'),
));

然后,您必须在execute()函数中创建上下文:

sfContext::createInstance($this->configuration);

最后,您可以非常轻松地调用Swift:

$this->getMailer()->composeAndSend($sender,$dest, $subject, $mailBody);

标签:symfony1,php
来源: https://codeday.me/bug/20191024/1917460.html