|
|
<?php |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace think\console\command; |
|
|
|
|
|
use think\Cache; |
|
|
use think\console\Command; |
|
|
use think\console\Input; |
|
|
use think\console\input\Argument; |
|
|
use think\console\input\Option; |
|
|
use think\console\Output; |
|
|
|
|
|
class Clear extends Command |
|
|
{ |
|
|
protected function configure() |
|
|
{ |
|
|
|
|
|
$this |
|
|
->setName('clear') |
|
|
->addArgument('type', Argument::OPTIONAL, 'type to clear', null) |
|
|
->addOption('path', 'd', Option::VALUE_OPTIONAL, 'path to clear', null) |
|
|
->setDescription('Clear runtime file'); |
|
|
} |
|
|
|
|
|
protected function execute(Input $input, Output $output) |
|
|
{ |
|
|
$path = $input->getOption('path') ?: RUNTIME_PATH; |
|
|
|
|
|
$type = $input->getArgument('type'); |
|
|
|
|
|
if ($type == 'route') { |
|
|
Cache::clear('route_check'); |
|
|
} else { |
|
|
if (is_dir($path)) { |
|
|
$this->clearPath($path); |
|
|
} |
|
|
} |
|
|
|
|
|
$output->writeln("<info>Clear Successed</info>"); |
|
|
} |
|
|
|
|
|
protected function clearPath($path) |
|
|
{ |
|
|
$path = realpath($path) . DS; |
|
|
$files = scandir($path); |
|
|
if ($files) { |
|
|
foreach ($files as $file) { |
|
|
if ('.' != $file && '..' != $file && is_dir($path . $file)) { |
|
|
$this->clearPath($path . $file); |
|
|
} elseif ('.gitignore' != $file && is_file($path . $file)) { |
|
|
unlink($path . $file); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|