webman icon indicating copy to clipboard operation
webman copied to clipboard

Handling Twig extensions

Open vilords opened this issue 2 years ago • 4 comments

Would be great if we could add extensions somehow in config without modifying the actual /support/view/Twig.php file

public static function render($template, $vars, $app = null)
{
    static $views = [], $view_suffix;
    $view_suffix = $view_suffix ? : \config('view.view_suffix', 'html');
    $app = $app === null ? \request()->app : $app;
    if (!isset($views[$app])) {
        $view_path = $app === '' ? \app_path(). '/view/' : \app_path(). "/$app/view/";
        $views[$app] = new Environment(new FilesystemLoader($view_path), \config('view.options', []));

        $views[$app]->addExtension(new \Jasny\Twig\DateExtension());
        $views[$app]->addExtension(new \Jasny\Twig\PcreExtension());
        $views[$app]->addExtension(new \Jasny\Twig\TextExtension());
        $views[$app]->addExtension(new \Jasny\Twig\ArrayExtension());
    }
    $vars = \array_merge(static::$_vars, $vars);
    $content = $views[$app]->render("$template.$view_suffix", $vars);
    static::$_vars = [];
    return $content;
}

vilords avatar Dec 03 '21 11:12 vilords