你可以使用Twig_SimpleFilter。
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('/path/to/templates');
// an anonymous function
$filter = new Twig_SimpleFilter('lang', function ($string) {
//do stuff
return $string;
});
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
然後在你的模板由於您使用的超薄和樹枝集成,您必須在樹枝組件中添加過濾器,你可以使用
<input type="text" class="form-control" placeholder="{{ 'Full Name'|lang }}">
。
// Register component on container
$container['view'] = function ($container) {
$view = new \Slim\Views\Twig('path/to/templates', [
'cache' => 'path/to/cache'
]);
$view->addExtension(new \Slim\Views\TwigExtension(
$container['router'],
$container['request']->getUri()
));
$filter = new Twig_SimpleFilter('lang', function ($string) {
//do stuff
return $string;
});
$view->getEnvironment()->addFilter($filter);
return $view;
};
除了那個樹枝有一個i18n extension。
我應該在哪裏放這個匿名函數?在bootstrap文件中? –
無所謂在哪裏。無論你在哪裏定義你的樹枝環境,你都必須定義過濾器。 –
編輯該帖子。基本上告訴樹枝在哪裏可以找到模板。 http://twig.sensiolabs.org/doc/api.html)當你已經在樹枝中渲染頁面時,你應該已經完成了。 –