我有自己的Template类,它做了这样的事情:
public function render(array $context)
{
// App & Twig
$app = App::getInstance();
$twig = $app->twig;
// Figure out which textdomain should be used
$prevTextDomain = textdomain(null);
textdomain($twig->getRenderTextDomain());
// Added helper variables, like isAdmin, isApi, isFront, am(assetmanager).
$context = array_merge($context, $twig->getRenderAttributes());
// Render
$data = parent::render($context);
// Set back to previous text domain
if (isset($prevTextDomain))
{
textdomain($prevTextDomain);
}
return $data;
}
但是现在不建议这样做,但是我还没有看到任何新的方法?一定有,因为他们为什么会在不提供新方法的情况下就弃用东西?那么如果没有base_template_class
怎么办呢?
我看过一些关于doEnterNode / doLeaveNode钩子是推荐的新方法的讨论。但是据我了解,我可能可以在那里实现该文本域逻辑,但是如何将自定义变量传递给上下文?
doEnterNode / doLeaveNode听起来不仅增加了渲染效果,还增加了开销。
问题是,如何在没有base_template_class
的情况下实现这一目标?