Zend Framework视图渲染需要大量内存

时间:2011-08-04 14:47:47

标签: zend-framework zend-view

我尝试使用我的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);
.....
}

请告知如何优化代码。

1 个答案:

答案 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
}