FuelPHPから渡された値をTwigで配列or文字列を判定する必要があったので、カスタムタグを追加してみました。
①お勧めできないやり方
1.「\fuel\parser\classes\view\twig.php」を「\classes\twig.php」にコピペする
2.「\Parser\View_Twig」を継承したクラスに変更する
3.parser()以外の関数を削除する
4.カスタムタグを追加する
twig.php
class View_Twig extends \Parser\View_Twig
{
public static function parser(){
// カスタムタグ
static::$_parser->addFilter(new Twig_SimpleFilter('is_string_twig', function ($str){
return (is_string($str)) ? 1 : 0;
}));
// カスタムタグ
}
}
5.bootstrap.phpでView_Twigの向き先を作成したクラスに設定する
bootstrap.php
Autoloader::add_classes(array(
'View_Twig' => APPPATH.'classes/twig.php',
));
6.twigで使用する
xxx.twig
{% if str|is_string_twig %}
{{ str }}
{% endif %}
②お勧めのやり方
Twig Extensionを使う
http://koyhogetech.hatenablog.com/entry/20131205/fuel_twig