Zend_View の複製 - clone -
2009年10月20日 19:01
シドニーに来て一番忙しかった週を乗り越えて、ようやく少しだけゆったり出来る!
クリスマスに向けて海外は追い込みなんですよねー。
・・・・・
そんな感じで、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;
}
・・・・・
[参考サイト]
オブジェクトのクローン作成
