如何在控制器之外或者服务中渲染模板?
我一直在遵循Symfony2的文档。文档链接
namespace Acme\HelloBundle\Newsletter;
use Symfony\Component\Templating\EngineInterface;
class NewsletterManager
{
protected $mailer;
protected $templating;
public function __construct(
\Swift_Mailer $mailer,
EngineInterface $templating
) {
$this->mailer = $mailer;
$this->templating = $templating;
}
// ...
}
这是我调用助手的地方:
$transport = \Swift_MailTransport::newInstance();
$mailer = \Swift_Mailer::newInstance($transport);
$helper = new MailHelper($mailer);
$helper->sendEmail($from, $to, $subject, $path_to_twig, $arr_to_twig);
首先,缺少的是在 construct 方法中的第二个参数:
$helper = new MailHelper($mailer);
“但是我该如何实例化EngineInterface呢?”
“当然不能这样写:”
new EngineInterface();
我完全迷失了。
我需要做的就是为发送的电子邮件渲染一个模板。