diff --git a/library/think/Console.php b/library/think/Console.php index 24b85134..93d17c52 100644 --- a/library/think/Console.php +++ b/library/think/Console.php @@ -49,7 +49,8 @@ class Console "think\\console\\command\\Lists", "think\\console\\command\\Build", "think\\console\\command\\make\\Controller", - "think\\console\\command\\make\\Model" + "think\\console\\command\\make\\Model", + "think\\console\\command\\cache\\Clear" ]; public function __construct($name = 'UNKNOWN', $version = 'UNKNOWN') diff --git a/library/think/console/command/cache/Clear.php b/library/think/console/command/cache/Clear.php new file mode 100644 index 00000000..4babaa55 --- /dev/null +++ b/library/think/console/command/cache/Clear.php @@ -0,0 +1,62 @@ + +// +---------------------------------------------------------------------- + +namespace think\console\command\cache; + +use think\console\command\Command; +use think\console\Input; +use think\console\input\Option as InputOption; +use think\console\Output; + +class Clear extends Command +{ + /** + * {@inheritdoc} + */ + protected function configure() + { + $this->setName('cache:clear') + ->setDescription('Clear Application Runtime'); + } + + protected function execute(Input $input, Output $output) + { + if (APP_DEBUG) { + $output->writeln("Open debug, do not need clear."); + return; + } + $templateDir = RUNTIME_PATH . '\temp'; + if (!file_exists($templateDir)) { + $output->writeln("Runtime does not exist."); + return; + } + $this->rmdirs($templateDir); + $output->writeln("Clear done!"); + } + + protected function rmdirs($dir) + { + $dir_arr = scandir($dir); + foreach($dir_arr as $key=>$val){ + if($val == '.' || $val == '..'){} + else { + if(is_dir($dir.'/'.$val)) + { + if(@rmdir($dir.'/'.$val) == 'true'){} + else + rmdirs($dir.'/'.$val); + } + else + unlink($dir.'/'.$val); + } + } + } +}