Smarty旧版のメンテナンスやってました。
Smarty(旧版)は色々困ることが多いです。日本語、配列の扱い、オブジェクトの扱いループなど
配列の配列は見れない。
{ $list.name.data }
といった配列の配列の参照ができません。
オブジェクトのメソッドのチェインもできない。
同様にメソッドの結果を参照することもできない
{ $list->get()->toString() }
も出来ません。
キャストも出来ない
同様にキャストもアウト
(String)$list
も出来ません。
Smarty でセッション値にアクセスするには
{$smarty.session.name} #=> $_SESSION[“name"]
$_SESSION[“name"]として、直接セッション値にアクセス出来ません、ちょっとCSRFキーを参照するだけでも一苦労です。
Smarty は joinすら出来ません。
implode joinが使えない。 いちいちforeachで回さなくちゃいけません。orz 苦しい
{php}array_join(“,”, $this->_tpl_vars[’nickname_list’]){/php}
とするか
{forech from=nickname_list item=value name=loop1} {if $smarty.foreach.loop1.last != true},{/if} {/foreach}
でやります。もうね。。。Smarty作った人ってPHP知らないんじゃないかと思うレベル。
いくらSmartyが改善されてるといっても1.x から 2.4を触ってみて、これでは駄目だと思うわ。作者はPHPしか知らないんじゃないか。
言語の必須機能は変数、ループ、関数、if だと思います、ループの基本機能に欠けるので苦労します。