November 25, 2011

FuelPHPでSmartyの設定とかのカスタマイズについて。

FuelPHPでSmartyを動かすまでの手順は、以下を参考にして下さい。
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