From d9109654f37a6e6ac36dc133fd70baef3e09ce94 Mon Sep 17 00:00:00 2001 From: chunice Date: Tue, 5 Apr 2016 14:45:06 +0800 Subject: [PATCH] =?UTF-8?q?Console=20=E5=A2=9E=E5=8A=A0=E6=B8=85=E7=90=86?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Console.php | 3 +- library/think/console/command/cache/Clear.php | 62 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 library/think/console/command/cache/Clear.php 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); + } + } + } +}