0

cron php スクリプトを使用して、次回送信するメールを作成しようとしています。また、メール テンプレートのレンダリングには Zend_View を使用します。私には 5 万人のユーザーがいますが、64MB のメモリ制限で 3000 件のメールが作成され、128MB で 7200 件のメールが作成されました。電子メールをレンダリングするコード

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);
.....
}

コードを最適化する方法をアドバイスしてください。

4

1 に答える 1

1

代わりに、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
}
于 2011-08-04T16:29:13.500 に答える