Я хочу использовать Twig (v1.15.0) в своем проекте, чтобы заменить наш самодельный шаблонный движок. Он использует специальные разделители для замены переменных, [[...]] или для управления локализованными строками, [% ...%].Twig lexer: добавить разделитель
Я не хочу изменять все существующие шаблоны, чтобы заменить каждый разделитель, по причинам устаревших и совместимых.
Для переменных, это не имеет большого значения, я просто должен установить параметры прутик LeXeR в:
$twig = new Twig_Environment();
$lexer = new Twig_Lexer($twig, array(
'tag_comment' => array('{#', '#}'),
'tag_block' => array('{%', '%}'),
'tag_variable' => array('[[', ']]'), // was array('{{', '}}')
'interpolation' => array('#{', '}'),
));
$twig->setLexer($lexer);
В случае локализации разделителей не так просто. Первоначально я хотел сделать что-то вроде этого:
$twig = new Twig_Environment();
$lexer = new Twig_Lexer($twig);
$lexer->addDelimiter('tag_localize', array('[%', '%]'), 'functionToCall');
Но оно, похоже, не реализовано.
Конечным решением является расширение класса Lexer и использование его в моей окружающей среде. Но я бы хотел этого избежать.
Есть ли лучшее решение?
Можете привести пример, как выглядит тег локализации в вашем старом шаблоне? –
Это переведет «Hello world» в соответствии с пользовательским языком: [% Hello world%] – user3182058