foldrr's weblog

旧ブログ http://d.hatena.ne.jp/foldrr/

HTML ヘルパでは value をどこから持ってくるのがいいか?

以下の優先順位で取得を試みるとよさそう。

  1. コントローラで設定した値
  2. リクエスト値
  3. セッション値
  4. デフォルト値

そんな関数を作ってみた。

<?php
$html_helper_target;  //コントローラを事前に設定しておく。

function _($name, $default = null){
    $t = $html_helper_target;
	
    $ret = $t->result->get($name);
    if($ret !== null){
    	return $ret;
    }
    
    $ret = $t->request->get($name);
    if($ret !== null){
    	return $ret;
    }
    
    $ret = $t->session->get($name);
    if($ret !== null){
    	return $ret;
    }
    
    return $default;
}
?>

ビューの中では以下のように使う。

<?php
<html>
    <body>
        <?=_("user_id")?>
    </body>
</html>
?>