Luke Towers 74b9df6e36
Improve reliability of cache:clear
This improves the reliability of the cache:clear command by not requiring the custom winter cache directories to exist when running cache:clear.

Also removes the clearing of disabled.json which is no longer used as of 1bbfb67d8c
2022-06-12 20:41:59 -06:00

85 lines
1.7 KiB
PHP

<?php namespace System\Helpers;
use App;
use File;
use Cache as CacheFacade;
use Config;
class Cache
{
use \Winter\Storm\Support\Traits\Singleton;
/**
* Execute the console command.
*/
public static function clear()
{
CacheFacade::flush();
self::clearInternal();
}
public static function clearInternal()
{
$instance = self::instance();
$instance->clearCombiner();
$instance->clearCache();
if (!Config::get('cms.twigNoCache')) {
$instance->clearTwig();
}
$instance->clearMeta();
}
/*
* Combiner
*/
public function clearCombiner()
{
$path = storage_path().'/cms/combiner';
if (!is_dir($path)) {
return;
}
foreach (File::directories($path) as $directory) {
File::deleteDirectory($directory);
}
}
/*
* Cache
*/
public function clearCache()
{
$path = storage_path().'/cms/cache';
if (!is_dir($path)) {
return;
}
foreach (File::directories(storage_path().'/cms/cache') as $directory) {
File::deleteDirectory($directory);
}
}
/*
* Twig
*/
public function clearTwig()
{
$path = storage_path().'/cms/twig';
if (!is_dir($path)) {
return;
}
foreach (File::directories(storage_path().'/cms/twig') as $directory) {
File::deleteDirectory($directory);
}
}
/*
* Meta
*/
public function clearMeta()
{
File::delete(App::getCachedCompilePath());
File::delete(App::getCachedServicesPath());
}
}