Twig устарел "base_template_class", как переопределить или подключить, чтобы "визуализировать" с более новым Twig? - PullRequest
1 голос
/ 07 октября 2019

У меня был собственный класс 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 - это новый рекомендуемый способ. Но что я понимаю, я, вероятно, мог бы реализовать эту логику textdomain там, но как получить пользовательские переменные в контекст?

Также звучит doEnterNode / doLeaveNode, добавляя больше накладных расходов, чем просто перезапись рендера.

Итаквопрос в том, как этого добиться без base_template_class?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...