Zend_View の複製 - clone -

シドニーに来て一番忙しかった週を乗り越えて、ようやく少しだけゆったり出来る!
クリスマスに向けて海外は追い込みなんですよねー。

・・・・・

そんな感じで、PHP でオブジェクトを複製するのに clone ってのが使えるんですね。
例えばメールを送る時や API の Post データのレンダリングを動的に行う時など、Zend_View_Interface を implements した Zend_View_Smarty(名前は任意)を複製して通常の View の処理と明示的に分けたりする。ここら辺の修理は以前非効率なやり方してた。

例えばこんな感じか。

public function testAction()
{
    $_req       =& $this->getRequest();
    $_firstname = $_req->getPost('firstname');
    $_lastname  = $_req->getPost('lastname');
    $_email     = $_req->getPost('email');
    $_from      = $this->mailIni->from;
    $_subject   = $this->mailIni->subject;
    $_data = array(
    );
    $_mailData = array(
        'firstname' => $_firstname,
        'lastname'  => $_lastname
    );
    // View の複製
    $_view = clone $this->view;
    $_view->assign('_mailData', $_mailData);
    $_body = $_view->render('mail/_body.tpl');
    $_mail =& new Zend_Mail();
    $_mail->addTo($_email);
    $_mail->setFrom($_from);
    $_mail->serSubject($_subject);
    $_mail->setBodyText($_body);
    $_mail->send();
    // 通常の View
    $this->view->data = $_data;
}

・・・・・

[参考サイト]
オブジェクトのクローン作成

ページの一番上へ移動

トラックバック

この記事へのトラックバック URL は下記の通りです。
http://www.convexstyle.net/mt/mt-tb.cgi/141

コメントの投稿

初めて投稿される方のコメントは管理者の承認が必要となります。ご了承ください。