From 8a901e89cb7956baeb20b424bfa65f8b7e096650 Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Tue, 14 Jul 2020 17:35:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=86=97=E4=BD=99=E4=BB=A3?= =?UTF-8?q?=E7=A0=81&=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- catch/permissions/model/Job.php | 3 ++ extend/catcher/CatchAdmin.php | 3 +- extend/catcher/base/CatchController.php | 46 ---------------------- extend/catcher/generate/factory/Model.php | 4 +- extend/catcher/generate/template/Model.php | 2 +- extend/catcher/library/Compress.php | 36 ++++++++++++++--- 6 files changed, 39 insertions(+), 55 deletions(-) diff --git a/catch/permissions/model/Job.php b/catch/permissions/model/Job.php index d0ab1d6..67a4de6 100644 --- a/catch/permissions/model/Job.php +++ b/catch/permissions/model/Job.php @@ -1,10 +1,13 @@ getRuntimePath() . self::NAME . DIRECTORY_SEPARATOR); + return self::makeDirectory(app()->getRuntimePath() . self::$root . DIRECTORY_SEPARATOR); } /** @@ -139,6 +139,7 @@ class CatchAdmin /** * * @time 2019年12月12日 + * @param bool $select * @return array */ public static function getModulesInfo($select = true): array diff --git a/extend/catcher/base/CatchController.php b/extend/catcher/base/CatchController.php index f0c3337..d0fb35f 100644 --- a/extend/catcher/base/CatchController.php +++ b/extend/catcher/base/CatchController.php @@ -1,53 +1,7 @@ loadConfig(); - }*/ - - /** - * - * - * @time 2019年12月15日 - * @return void - */ - protected function loadConfig(): void - { - $module = explode('\\', get_class($this))[1]; - - $moduleConfig = CatchAdmin::moduleDirectory($module) . 'config.php'; - - if (file_exists(CatchAdmin::moduleDirectory($module) . 'config.php')) { - app()->config->load($moduleConfig); - } - } - - /** - * - * @time 2019年12月13日 - * @param $name - * @param $value - * @return void - */ - public function __set($name, $value) - { - // TODO: Implement __set() method. - $this->{$name} = $value; - } - - public function __get($name) - { - // TODO: Implement __get() method. - } - - public function __isset($name) - { - // TODO: Implement __isset() method. - } } diff --git a/extend/catcher/generate/factory/Model.php b/extend/catcher/generate/factory/Model.php index bb38221..45109a7 100644 --- a/extend/catcher/generate/factory/Model.php +++ b/extend/catcher/generate/factory/Model.php @@ -3,6 +3,8 @@ namespace catcher\generate\factory; use catcher\exceptions\FailedException; use catcher\generate\template\Model as Template; +use catcher\Utils; +use Phinx\Util\Util; use think\facade\Db; use think\helper\Str; @@ -52,7 +54,7 @@ class Model extends Factory } $content = $template->useTrait($extra['soft_delete']) . - $template->name($table) . + $template->name(str_replace(Utils::tablePrefix(), '', $table)) . $template->field($this->parseField($table)); $class = $template->header() . diff --git a/extend/catcher/generate/template/Model.php b/extend/catcher/generate/template/Model.php index 923efcb..ef4d6e3 100644 --- a/extend/catcher/generate/template/Model.php +++ b/extend/catcher/generate/template/Model.php @@ -58,7 +58,7 @@ TMP; { if ($name) { return <<getFilesFromDir(CatchAdmin::directory() . $moduleName); - - $packageZip = new \ZipArchive(); // zip 打包位置 默认打包在 catch 目录下 $zipPath = $zipPath ? : CatchAdmin::directory() . $moduleName . '.zip'; + + $this->dirToZip(CatchAdmin::directory() . $moduleName, $zipPath); + + return true; + } + + /** + * 打包 dir + * + * @time 2020年07月13日 + * @param $dir + * @param $zipPath + * @return bool + */ + public function dirToZip($dir, $zipPath) + { + $packageZip = new \ZipArchive(); + + $files = $this->getFilesFromDir($dir); + $packageZip->open($zipPath, \ZipArchive::CREATE); - $packageZip->addEmptyDir($moduleName); + + // 获取 dir 目录作为 zip 的根目录 + $d = explode(DIRECTORY_SEPARATOR, rtrim($dir, DIRECTORY_SEPARATOR)); + + $packageZip->addEmptyDir(array_pop($d)); + foreach ($files as $file) { $baseName = basename($file); - $localName = str_replace([CatchAdmin::directory(), $baseName], ['', ''], $file); + $localName = str_replace([implode(DIRECTORY_SEPARATOR, $d), $baseName], ['', ''], $file); $packageZip->addFile($file, $localName . $baseName); } + $packageZip->close(); return true;