http://madroom-project.blogspot.com/2011/11/fuelphpsmarty.html
まず、Smartyの設定は
fuel/packages/parser/parser.php(以下、parser.php)
に書いてありました。
そして、この設定は
fuel/packages/parser/classes/view/smarty.php(以下、smarty.php)
で読み込まれるようです。
smarty.phpを見るとわかるように、例えば
$smarty->auto_literal
は有りません。
設定する必要があるならば、smarty.phpに以下を追記。
static::$_parser->auto_literal = \Config::get('parser.View_Smarty.auto_literal', false);parser.phpの'View_Smarty'直下に'auto_literal'の設定を追加。
といった具合でしょうか。
尚、parser.phpには"app/config下にコピーして使ってください。"みたいなコメントがあります。
が、少しハマりました。。。
app/config/parser.phpを作成(オリジナルをコピー)して、
例えば'View_Smarty'の'delimiters'を
'delimiters' => array('{%', '%}'),
にしても、全く変化が有りませんでした。
どうも、オリジナルのparser.phpでの設定が強いように見えます。
でも、'include'に関しては、オリジナルのparser.phpの'include'が無ければ、
コピーしたparser.phpの'include'を見に行く。という挙動を取るように見えます。
具体的には
packages/parser/classes/view.php の
// Include necessary files foreach ((array) \Config::get('parser.'.$class.'.include', array()) as $include) { if ( ! array_key_exists($include, static::$loaded_files)) { require $include; static::$loaded_files[$include] = true; } }に刺さるのかなと。
うーん。出来ればオリジナルのファイルに手を加えたくない。
最もクリーンに拡張できる方法は何だろう。。。
そもそも、Smartyに大きな執着は有りませんが、調べ始めてしまったので、
とりあえずココまでは調査してみました。
No comments:
Post a Comment