think\console\command\optimize\Schema::execute PHP Метод

execute() защищенный Метод

protected execute ( Input $input, Output $output )
$input think\console\Input
$output think\console\Output
    protected function execute(Input $input, Output $output)
    {
        if (!is_dir(RUNTIME_PATH . 'schema')) {
            @mkdir(RUNTIME_PATH . 'schema', 0755, true);
        }
        if ($input->hasOption('module')) {
            $module = $input->getOption('module');
            // 读取模型
            $list = scandir(APP_PATH . $module . DS . 'model');
            $app = App::$namespace;
            foreach ($list as $file) {
                if ('.' == $file || '..' == $file) {
                    continue;
                }
                $class = '\\' . $app . '\\' . $module . '\\model\\' . pathinfo($file, PATHINFO_FILENAME);
                $this->buildModelSchema($class);
            }
            $output->writeln('<info>Succeed!</info>');
            return;
        } else {
            if ($input->hasOption('table')) {
                $table = $input->getOption('table');
                if (!strpos($table, '.')) {
                    $dbName = Db::getConfig('database');
                }
                $tables[] = $table;
            } elseif ($input->hasOption('db')) {
                $dbName = $input->getOption('db');
                $tables = Db::getTables($dbName);
            } elseif (!\think\Config::get('app_multi_module')) {
                $app = App::$namespace;
                $list = scandir(APP_PATH . 'model');
                foreach ($list as $file) {
                    if ('.' == $file || '..' == $file) {
                        continue;
                    }
                    $class = '\\' . $app . '\\model\\' . pathinfo($file, PATHINFO_FILENAME);
                    $this->buildModelSchema($class);
                }
                $output->writeln('<info>Succeed!</info>');
                return;
            } else {
                $tables = Db::getTables();
            }
        }
        $db = isset($dbName) ? $dbName . '.' : '';
        $this->buildDataBaseSchema($tables, $db);
        $output->writeln('<info>Succeed!</info>');
    }