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