New feature: caching twig templates

This commit is contained in:
Jeroen De Meerleer 2021-08-02 13:28:14 +02:00
parent 79b8c58065
commit 621fadd7c2
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
3 changed files with 22 additions and 1 deletions

View File

@ -20,6 +20,7 @@ class Kernel
private string $configDir;
private string $projectDir;
private string $templateDir;
private string $cacheDir;
private Router $router;
/**
@ -70,6 +71,22 @@ class Kernel
$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
*/

View File

@ -6,6 +6,7 @@ namespace JeroenED\Framework;
use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension;
use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup;
use Twig\Cache\FilesystemCache;
use Twig\Environment;
use Twig\Extra\Intl\IntlExtension;
use Twig\Loader\FilesystemLoader;
@ -16,11 +17,13 @@ class Twig
{
private Environment $environment;
private Kernel $kernel;
public function __construct(Kernel $kernel)
{
$loader = new FilesystemLoader([$kernel->getTemplateDir()]);
$cache = new FilesystemCache($kernel->getCacheDir() . '/twig');
$this->environment = new Environment($loader);
$this->environment->setCache($cache);
$this->kernel = $kernel;
$this->addExtensions();
$this->addFunctions();

View File

@ -10,6 +10,7 @@ $kernel = new Kernel();
$kernel->setProjectDir(getcwd());
$kernel->setConfigDir(getcwd() . '/config/');
$kernel->setTemplateDir(getcwd() . '/templates/');
$kernel->setCacheDir(getcwd() . '/cache/');
$kernel->parseDotEnv($kernel->getProjectDir() . '/.env');
ini_set('date.timezone', $_ENV['TZ']);