Skip to content

Commit

Permalink
Merge pull request #730 from Zankaria/move-twig-cache
Browse files Browse the repository at this point in the history
Move twig template cache
  • Loading branch information
RealAngeleno committed Apr 28, 2024
2 parents 51aa6e3 + ebbb5fc commit 1df9d2d
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 29 deletions.
28 changes: 0 additions & 28 deletions inc/cache.php
Expand Up @@ -165,31 +165,3 @@ public static function flush() {
return false;
}
}

class Twig_Cache_TinyboardFilesystem extends Twig\Cache\FilesystemCache
{
private $directory;
private $options;

/**
* {@inheritdoc}
*/
public function __construct($directory, $options = 0)
{
parent::__construct($directory, $options);

$this->directory = $directory;
}

/**
* This function was removed in Twig 2.x due to developer views on the Twig library. Who says we can't keep it for ourselves though?
*/
public function clear()
{
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->directory), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
if ($file->isFile()) {
@unlink($file->getPathname());
}
}
}
}
28 changes: 27 additions & 1 deletion inc/template.php
Expand Up @@ -18,7 +18,7 @@ function load_twig() {
$twig = new Twig\Environment($loader, array(
'autoescape' => false,
'cache' => is_writable('templates/') || (is_dir($cache_dir) && is_writable($cache_dir)) ?
new Twig_Cache_TinyboardFilesystem($cache_dir) : false,
new TinyboardTwigCache($cache_dir) : false,
'debug' => $config['debug'],
'auto_reload' => $config['twig_auto_reload']
));
Expand Down Expand Up @@ -73,6 +73,32 @@ function Element($templateFile, array $options) {
}
}

class TinyboardTwigCache extends Twig\Cache\FilesystemCache {
private string $directory;

public function __construct(string $directory) {
parent::__construct($directory);
$this->directory = $directory;
}

/**
* This function was removed in Twig 2.x due to developer views on the Twig library.
* Who says we can't keep it for ourselves though?
*/
public function clear() {
$iter = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($this->directory),
RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($iter as $file) {
if ($file->isFile()) {
@unlink($file->getPathname());
}
}
}
}

class Tinyboard extends Twig\Extension\AbstractExtension
{
/**
Expand Down

0 comments on commit 1df9d2d

Please sign in to comment.