From 72eb17494649288318348cbe2a5fd66e788322af Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Tue, 5 May 2020 21:52:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extend/catcher/generate/factory/Model.php | 11 ++++---- extend/catcher/generate/factory/Route.php | 9 +++++-- extend/catcher/generate/factory/SQL.php | 31 +++++++++++++++++------ 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/extend/catcher/generate/factory/Model.php b/extend/catcher/generate/factory/Model.php index f66036e..d3b1ba2 100644 --- a/extend/catcher/generate/factory/Model.php +++ b/extend/catcher/generate/factory/Model.php @@ -10,11 +10,11 @@ class Model extends Factory { public function done($params) { - $file = $this->getGeneratePath($params['model']); + $content = $this->getContent($params); - file_put_contents($file, $this->getContent($params)); + file_put_contents($this->getGeneratePath($params['model']), $content); - if (!file_exists($file)) { + if (!file_exists($this->getGeneratePath($params['model']))) { throw new FailedException('create model failed'); } @@ -28,7 +28,7 @@ class Model extends Factory * @param $params * @return string|string[] */ - public function getContent($params) + public function getContent(&$params) { // TODO: Implement done() method. $template = new Template(); @@ -41,7 +41,8 @@ class Model extends Factory // 如果填写了表名并且没有填写模型名称 使用表名作为模型名称 if (!$modelName && $table) { - $modelName = Str::camel($table); + $modelName = ucfirst(Str::camel($table)); + $params['model'] = $params['model'] . $modelName; } if (!$modelName) { diff --git a/extend/catcher/generate/factory/Route.php b/extend/catcher/generate/factory/Route.php index d2d5b37..dfd2f62 100644 --- a/extend/catcher/generate/factory/Route.php +++ b/extend/catcher/generate/factory/Route.php @@ -29,8 +29,13 @@ class Route extends Factory } } - return file_put_contents($this->getModulePath($this->controller) . DIRECTORY_SEPARATOR . 'route.php', - $this->header() . implode(';'. PHP_EOL , $route) . ';'); + $router = $this->getModulePath($this->controller) . DIRECTORY_SEPARATOR . 'route.php'; + + if (file_exists($router)) { + return file_put_contents($router, PHP_EOL . implode(';'. PHP_EOL , $route) . ';', FILE_APPEND); + } + + return file_put_contents($router, $this->header() . implode(';'. PHP_EOL , $route) . ';'); } /** diff --git a/extend/catcher/generate/factory/SQL.php b/extend/catcher/generate/factory/SQL.php index f6ca3a6..99b960f 100644 --- a/extend/catcher/generate/factory/SQL.php +++ b/extend/catcher/generate/factory/SQL.php @@ -12,6 +12,7 @@ class SQL extends Factory public function done($params) { + //dd($this->createSQL($params)); Db::execute($this->createSQL($params)); // 判断表是否创建成功 @@ -89,14 +90,28 @@ class SQL extends Factory $this->parseIndex($sql['index'], $sql['field']); } - return implode(' ', [ - sprintf('`%s`', $sql['field']), - $sql['type'] . ($sql['length'] ? sprintf('(%s)', $sql['length']) : ''), - $sql['unsigned'] ? 'unsigned' : '', - 'default ' . $sql['default'], - $sql['nullable'] ? 'not null' : '', - $sql['comment'] ? sprintf('comment \'%s\'', $sql['comment']) : '' - ]) . ','. PHP_EOL; + // 字段 + $_sql[] = sprintf('`%s`', $sql['field']); + // 类型 + $_sql[] = $sql['type'] . ($sql['length'] ? sprintf('(%s)', $sql['length']) : ''); + + if ($sql['unsigned']) { + $_sql[] = 'unsigned'; + } + // 默认值 + if (!$sql['nullable']) { + $_sql[] = 'not null'; + if (!$sql['default']) { + $_sql[] = ' default \'\''; + } else { + $_sql[] = ' default ' . $sql['default']; + } + } + // 字段注释 + $_sql[] = $sql['comment'] ? sprintf('comment \'%s\'', $sql['comment']) : ''; + + + return implode(' ', $_sql) . ','. PHP_EOL; } /**