New feature: caching twig templates
This commit is contained in:
parent
79b8c58065
commit
621fadd7c2
|
@ -20,6 +20,7 @@ class Kernel
|
||||||
private string $configDir;
|
private string $configDir;
|
||||||
private string $projectDir;
|
private string $projectDir;
|
||||||
private string $templateDir;
|
private string $templateDir;
|
||||||
|
private string $cacheDir;
|
||||||
private Router $router;
|
private Router $router;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -70,6 +71,22 @@ class Kernel
|
||||||
$this->templateDir = $templateDir;
|
$this->templateDir = $templateDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getCacheDir(): string
|
||||||
|
{
|
||||||
|
return $this->cacheDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $cacheDir
|
||||||
|
*/
|
||||||
|
public function setCacheDir(string $cacheDir): void
|
||||||
|
{
|
||||||
|
$this->cacheDir = $cacheDir;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Router
|
* @return Router
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -6,6 +6,7 @@ namespace JeroenED\Framework;
|
||||||
|
|
||||||
use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension;
|
use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension;
|
||||||
use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup;
|
use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup;
|
||||||
|
use Twig\Cache\FilesystemCache;
|
||||||
use Twig\Environment;
|
use Twig\Environment;
|
||||||
use Twig\Extra\Intl\IntlExtension;
|
use Twig\Extra\Intl\IntlExtension;
|
||||||
use Twig\Loader\FilesystemLoader;
|
use Twig\Loader\FilesystemLoader;
|
||||||
|
@ -16,11 +17,13 @@ class Twig
|
||||||
{
|
{
|
||||||
private Environment $environment;
|
private Environment $environment;
|
||||||
private Kernel $kernel;
|
private Kernel $kernel;
|
||||||
|
|
||||||
public function __construct(Kernel $kernel)
|
public function __construct(Kernel $kernel)
|
||||||
{
|
{
|
||||||
|
|
||||||
$loader = new FilesystemLoader([$kernel->getTemplateDir()]);
|
$loader = new FilesystemLoader([$kernel->getTemplateDir()]);
|
||||||
|
$cache = new FilesystemCache($kernel->getCacheDir() . '/twig');
|
||||||
$this->environment = new Environment($loader);
|
$this->environment = new Environment($loader);
|
||||||
|
$this->environment->setCache($cache);
|
||||||
$this->kernel = $kernel;
|
$this->kernel = $kernel;
|
||||||
$this->addExtensions();
|
$this->addExtensions();
|
||||||
$this->addFunctions();
|
$this->addFunctions();
|
||||||
|
|
|
@ -10,6 +10,7 @@ $kernel = new Kernel();
|
||||||
$kernel->setProjectDir(getcwd());
|
$kernel->setProjectDir(getcwd());
|
||||||
$kernel->setConfigDir(getcwd() . '/config/');
|
$kernel->setConfigDir(getcwd() . '/config/');
|
||||||
$kernel->setTemplateDir(getcwd() . '/templates/');
|
$kernel->setTemplateDir(getcwd() . '/templates/');
|
||||||
|
$kernel->setCacheDir(getcwd() . '/cache/');
|
||||||
$kernel->parseDotEnv($kernel->getProjectDir() . '/.env');
|
$kernel->parseDotEnv($kernel->getProjectDir() . '/.env');
|
||||||
|
|
||||||
ini_set('date.timezone', $_ENV['TZ']);
|
ini_set('date.timezone', $_ENV['TZ']);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user