![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Helper/ |
<?php namespace Mautic\CoreBundle\Helper; use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpKernel\KernelInterface; class CacheHelper { public function __construct( private string $cacheDir, private ?Session $session, private PathsHelper $pathsHelper, private KernelInterface $kernel ) { } /** * Deletes the cache folder. */ public function nukeCache(): void { $this->clearSessionItems(); $fs = new Filesystem(); $fs->remove($this->cacheDir); $this->clearOpcache(); $this->clearApcuCache(); } public function refreshConfig(): void { $this->clearSessionItems(); $this->clearConfigOpcache(); $this->clearApcuCache(); } /** * Run the bin/console cache:clear command. */ public function clearSymfonyCache(): int { $env = $this->kernel->getEnvironment(); $application = new Application($this->kernel); $application->setAutoExit(false); $input = new ArrayInput([ 'command' => 'cache:clear', '--env' => $env, ]); $output = new BufferedOutput(); return $application->run($input, $output); } /** * Clear cache related session items. */ protected function clearSessionItems(): void { if (!$this->session) { return; } // Clear the menu items and icons so they can be rebuilt $this->session->remove('mautic.menu.items'); $this->session->remove('mautic.menu.icons'); } private function clearConfigOpcache(): void { if (!function_exists('opcache_reset') || !function_exists('opcache_invalidate')) { return; } opcache_invalidate($this->pathsHelper->getLocalConfigurationFile(), true); } private function clearOpcache(): void { if (!function_exists('opcache_reset')) { return; } opcache_reset(); } private function clearApcuCache(): void { if (!function_exists('apcu_clear_cache')) { return; } apcu_clear_cache(); } }