我已经能够加载视图模板并使用它来创建电子邮件的正文。代码类似于这里的答案: How to render a mail template with layout in ZF2?
但现在我希望获取此代码并将其移动到一个模块中,以帮助我的应用程序的其余部分发送电子邮件。我想我想让所有电子邮件的视图尽可能简单/透明。
所以基本问题是,我如何设置代码来接受渲染模板和发送电子邮件所需的信息?
我已经在服务定位器中保存了我的运输信息,并且发送电子邮件工作正常。我主要关心的是模板解析器所需的凌乱代码:
$view = new PhpRenderer();
$resolver = new TemplateMapResolver();
$resolver->setMap(array(
'mail' => __DIR__ . '/../../../view/communication/email/new-project.phtml'
));
$view->setResolver($resolver);
我可以将所有 *.phtml 用于保存在新模块中的电子邮件。无需从应用程序中发送临时电子邮件(我们使用应用程序内部的通信)。
有没有办法使用module.config.php 'view_manager' => 'template_map'
并绕过创建一个的需要new resolver()
? 在这种情况下,我可以设置电子邮件代码以接受应该在该地图中的命名模板。
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
'doctype' => 'HTML5',
'not_found_template' => 'error/404',
'exception_template' => 'error/index',
'template_map' => array(
'layout/layout' => __DIR__ . '/../view/layout/layout.phtml',
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),