diff --git a/app/Helpers/ExtensionHelper.php b/app/Helpers/ExtensionHelper.php index 7e1bbda3..1f37cd4a 100644 --- a/app/Helpers/ExtensionHelper.php +++ b/app/Helpers/ExtensionHelper.php @@ -2,6 +2,9 @@ namespace App\Helpers; +/** + * Summary of ExtensionHelper + */ class ExtensionHelper { /** @@ -60,7 +63,7 @@ class ExtensionHelper /** * Get all extensions - * @return array + * @return array of all extension paths look like: app/Extensions/ExtensionNamespace/ExtensionName */ public static function getAllExtensions() { @@ -79,4 +82,24 @@ class ExtensionHelper return $extensions; } + + /** + * Summary of getAllExtensionMigrations + * @return array of all migration paths look like: app/Extensions/ExtensionNamespace/ExtensionName/migrations/ + */ + public static function getAllExtensionMigrations() + { + $extensions = ExtensionHelper::getAllExtensions(); + + // get all migration directories of the extensions and return them as array + $migrations = []; + foreach ($extensions as $extension) { + $migrationDir = $extension . '/migrations'; + if (file_exists($migrationDir)) { + $migrations[] = $migrationDir; + } + } + + return $migrations; + } } diff --git a/config/settings.php b/config/settings.php index f3a6393b..67838a5c 100644 --- a/config/settings.php +++ b/config/settings.php @@ -1,5 +1,6 @@ [ database_path('settings'), + ...ExtensionHelper::getAllExtensionMigrations() + ], /* @@ -88,7 +91,7 @@ return [ 'global_casts' => [ DateTimeInterface::class => Spatie\LaravelSettings\SettingsCasts\DateTimeInterfaceCast::class, DateTimeZone::class => Spatie\LaravelSettings\SettingsCasts\DateTimeZoneCast::class, -// Spatie\DataTransferObject\DataTransferObject::class => Spatie\LaravelSettings\SettingsCasts\DtoCast::class, + // Spatie\DataTransferObject\DataTransferObject::class => Spatie\LaravelSettings\SettingsCasts\DtoCast::class, Spatie\LaravelData\Data::class => Spatie\LaravelSettings\SettingsCasts\DataCast::class, ],