/usr/share/phpmyadmin/libraries/classes
Edit: /usr/share/phpmyadmin/libraries/classes/Template.php (3962B)
getTempDir('twig') : null;
/* Twig expects false when cache is not configured */
if ($cache_dir === null) {
$cache_dir = false;
}
$twig = new Environment($loader, [
'auto_reload' => true,
'cache' => $cache_dir,
]);
// It was reported that the config could not be loaded correctly
if (is_array($cfg) && $cfg['environment'] === 'development') {
$twig->enableDebug();
$twig->addExtension(new DebugExtension());
}
$twig->addExtension(new CoreExtension());
$twig->addExtension(new I18nExtension());
$twig->addExtension(new MessageExtension());
$twig->addExtension(new PluginsExtension());
$twig->addExtension(new RelationExtension());
$twig->addExtension(new SanitizeExtension());
$twig->addExtension(new TableExtension());
$twig->addExtension(new TrackerExtension());
$twig->addExtension(new TransformationsExtension());
$twig->addExtension(new UrlExtension());
$twig->addExtension(new UtilExtension());
static::$twig = $twig;
}
/**
* Loads a template.
*
* @param string $templateName Template path name
*
* @throws LoaderError
* @throws RuntimeError
* @throws SyntaxError
*/
private function load(string $templateName): TemplateWrapper
{
try {
$template = static::$twig->load($templateName . '.twig');
} catch (RuntimeException $e) {
/* Retry with disabled cache */
static::$twig->setCache(false);
$template = static::$twig->load($templateName . '.twig');
/*
* The trigger error is intentionally after second load
* to avoid triggering error when disabling cache does not
* solve it.
*/
trigger_error(
sprintf(
__('Error while working with template cache: %s'),
$e->getMessage()
),
E_USER_WARNING
);
}
return $template;
}
/**
* @param string $template Template path name
* @param array $data Associative array of template variables
*
* @throws Throwable
* @throws LoaderError
* @throws RuntimeError
* @throws SyntaxError
*/
public function render(string $template, array $data = []): string
{
return $this->load($template)->render($data);
}
}