我尝试使用我的cron php脚本为下一次发送创建电子邮件。 我使用Zend_View来渲染电子邮件模板。 我有50k用户,但创建了3000封电子邮件,内存限制为64MB,7200封为128MB。 呈现电子邮件的代码
public function prepareEmailBody($template, $templates)
{
$view = new Zend_View(array('basePath' => './application/views'));
$template_file_name = $template . '.phtml';
foreach ($templates as $key => $value) {
$view->$key = $value;
}
$body = $view->render('mails/' . $template_file_name);
return $body
}
并在
中使用此方法foreach ($users as $user) {
.....
$text = Mailer::getInstance()->prepareEmailBody($template, $vars);
.....
}
请告知如何优化代码。
答案 0 :(得分:1)
您可以尝试使用一个View对象和部分帮助程序,这可能会改善一些事情(或者可能会让它变慢)。
public function getView()
{
if (!$this->_view) {
$this->_view = new Zend_View(array('basePath' => './application/views'));
}
return $this->_view;
}
public function prepareEmailBody($template, $templates)
{
$template_file_name = $template . '.phtml';
$body = $this->getView()->partial($template_file_name, $templates);
return $body
}