setName("clear-cache")
->setDescription("Clears the application cache. Includes cache service, Twig and Router cached data");
}
/**
* {@inheritDoc}
*/
protected function execute(InputInterface $input, OutputInterface $output) {
$this->io->title("Clearing cache");
// Clear normal cache
$this->io->writeln(" > Clearing Illuminate cache instance", OutputInterface::VERBOSITY_VERBOSE);
$this->clearIlluminateCache();
// Clear Twig cache
$this->io->writeln(" > Clearing Twig cached data", OutputInterface::VERBOSITY_VERBOSE);
if (!$this->clearTwigCache()) {
$this->io->error("Failed to clear Twig cached data. Make sure you have write access to the `app/cache/twig` directory.");
exit(1);
}
// Clear router cache
$this->io->writeln(" > Clearing Router cache file", OutputInterface::VERBOSITY_VERBOSE);
if (!$this->clearRouterCache()) {
$file = $this->ci->config['settings.routerCacheFile'];
$this->io->error("Failed to delete Router cache file. Make sure you have write access to the `$file` file.");
exit(1);
}
$this->io->success("Cache cleared !");
}
/**
* Flush the cached data from the cache service
*
* @access protected
* @return void
*/
protected function clearIlluminateCache() {
$this->ci->cache->flush();
}
/**
* Clear the Twig cache using the Twig CacheHelper class
*
* @access protected
* @return bool true/false if operation is successfull
*/
protected function clearTwigCache() {
$cacheHelper = new CacheHelper($this->ci);
return $cacheHelper->clearCache();
}
/**
* Clear the Router cache data file
*
* @access protected
* @return bool true/false if operation is successfull
*/
protected function clearRouterCache() {
return $this->ci->router->clearCache();
}
}