diff options
author | marvin-borner@live.com | 2018-04-16 21:09:05 +0200 |
---|---|---|
committer | marvin-borner@live.com | 2018-04-16 21:09:05 +0200 |
commit | cf14306c2b3f82a81f8d56669a71633b4d4b5fce (patch) | |
tree | 86700651aa180026e89a66064b0364b1e4346f3f /main/app/system/Bakery/Command/ClearCache.php | |
parent | 619b01b3615458c4ed78bfaeabb6b1a47cc8ad8b (diff) |
Main merge to user management system - files are now at /main/public/
Diffstat (limited to 'main/app/system/Bakery/Command/ClearCache.php')
-rwxr-xr-x | main/app/system/Bakery/Command/ClearCache.php | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/main/app/system/Bakery/Command/ClearCache.php b/main/app/system/Bakery/Command/ClearCache.php new file mode 100755 index 0000000..d38f382 --- /dev/null +++ b/main/app/system/Bakery/Command/ClearCache.php @@ -0,0 +1,95 @@ +<?php +/** + * UserFrosting (http://www.userfrosting.com) + * + * @link https://github.com/userfrosting/UserFrosting + * @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License) + */ +namespace UserFrosting\System\Bakery\Command; + +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputOption; +use UserFrosting\System\Bakery\BaseCommand; +use UserFrosting\Sprinkle\Core\Twig\CacheHelper; + +/** + * ClearCache CLI Command. + * + * @author Alex Weissman (https://alexanderweissman.com) + */ +class ClearCache extends BaseCommand +{ + /** + * {@inheritDoc} + */ + protected function configure() + { + $this->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("<info> > Clearing Illuminate cache instance</info>", OutputInterface::VERBOSITY_VERBOSE); + $this->clearIlluminateCache(); + + // Clear Twig cache + $this->io->writeln("<info> > Clearing Twig cached data</info>", 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("<info> > Clearing Router cache file</info>", 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(); + } +}
\ No newline at end of file |