日記
smarty_modifier_jsonEdit

今後JSONを使う機会は多くなるだろうけど、JSONライブラリのどれを使うべきか決め手に欠ける。あと、「サーバーとクライアントでテンプレートを共有したい場合」なんてことも考えつつ、

function smarty_modifier_json($var)
{
require_once 'HTML/AJAX.php';
$jsonSerializer =& new HTML_AJAX_Serializer_JSON();
$json = $jsonSerializer->serialize($var);
return $json;
}

のようなSmartyプラグインを用意して、

{if $mode == 'json"}
{$data|json}
{else}
{!-- $dataをHTMLとして展開するコード  --}
{/if}

なんて書くようにしておくと、JSONライブラリを差し替えるのも比較的楽かも。将来性を考えると、Zend Frameworkに入っているZend_Json_Encoderあたりが良さそうかなー。

あとsmarty_modifier_jsonの中で

header('content-type: text/javascript; charset=utf-8');

までやっちゃうと副作用が大きすぎるかな?

そういや

{if $mode == 'php'}
{$data|serialize}

とかも一応対応しておいた方がいいのかな? この前ちょっと話題になっていたよね。

Published At2006-03-07 00:00Updated At2006-03-07 00:00