diff --git a/app/event.php b/app/event.php index 1be2df1..8b9fe55 100644 --- a/app/event.php +++ b/app/event.php @@ -18,6 +18,9 @@ return [ 'AdminLoginType' => [ ], + 'LoadMigrationFiles'=>[ + + ] ], 'subscribe' => [ diff --git a/extend/base/helper.php b/extend/base/helper.php index f7798b7..1980e1e 100644 --- a/extend/base/helper.php +++ b/extend/base/helper.php @@ -233,6 +233,15 @@ function build_upload_url($url, $upload_type = null) return Filesystem::disk($upload_type)->url($url); } +/** + * 执行扩展事件 + * + * @param string $name 事件名称 + * @param string $key 处理的key + * @param string $type 处理模式 + * @param array $params 传参 + * @return array + */ function event_handle_result($name, $key, $type = 'all', $params = []) : array { $list_result = Event::trigger($name, $params); diff --git a/extend/think/migration/command/Migrate.php b/extend/think/migration/command/Migrate.php index b16619a..1bafcfc 100644 --- a/extend/think/migration/command/Migrate.php +++ b/extend/think/migration/command/Migrate.php @@ -104,6 +104,14 @@ abstract class Migrate extends Command if (null === $this->migrations) { $phpFiles = glob($this->getPath() . DIRECTORY_SEPARATOR . '*.php', defined('GLOB_BRACE') ? GLOB_BRACE : 0); + $event_files = event_handle_result('LoadMigrationFiles','file_list'); + + foreach ($event_files as $file_list) { + foreach ($file_list as $file_path) { + $phpFiles[] = $file_path; + } + } + // filter the files to only get the ones that match our naming scheme $fileNames = []; /** @var Migrator[] $versions */