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(); } }