テンプレの変数のスコープが微妙 Smartyとかのテンプレの変数って、アサインされてる前提で使うし、まあアサインされてなくてnullのときにも動くようなプログラミングもするけど、どうにも気になる...
テンプレの変数のスコープが微妙
Smartyとかのテンプレの変数って、アサインされてる前提で使うし、まあアサインされてなくてnullのときにも動くようなプログラミングもするけど、どうにも気になる。
doSomething(Hoge $hoge) とかの関数だとしたら、Hoge型の$hogeが使えるのは一応保証されてるけど、テンプレだとそうでもないんだよね。foo.php から hoge.tpl を呼ぶときは動くとして、 bar.php から hoge.tpl を呼ぶと何かの変数が入ってなくて動かないとか。
例えば hoge.tpl は hoge.php からしか呼ばないというようなコーディング規約で縛るという手もあるにはあって、なんでそういう規約があるのかと思ったけど、やっぱり意味はあるんだなあ、とか。あるいは displayHoge() を経由して hoge.tpl を表示する、みたいな規約にすると、もうちょっと柔軟になる。
とはいっても規約で縛ったりラップしたりするのも気持ち悪いには違いないんだよな。
Smartyとかのテンプレの変数って、アサインされてる前提で使うし、まあアサインされてなくてnullのときにも動くようなプログラミングもするけど、どうにも気になる。
doSomething(Hoge $hoge) とかの関数だとしたら、Hoge型の$hogeが使えるのは一応保証されてるけど、テンプレだとそうでもないんだよね。foo.php から hoge.tpl を呼ぶときは動くとして、 bar.php から hoge.tpl を呼ぶと何かの変数が入ってなくて動かないとか。
例えば hoge.tpl は hoge.php からしか呼ばないというようなコーディング規約で縛るという手もあるにはあって、なんでそういう規約があるのかと思ったけど、やっぱり意味はあるんだなあ、とか。あるいは displayHoge() を経由して hoge.tpl を表示する、みたいな規約にすると、もうちょっと柔軟になる。
とはいっても規約で縛ったりラップしたりするのも気持ち悪いには違いないんだよな。