Pārlūkot izejas kodu

feat: ✨ Added Extensionmigrations to laravel-settings config

IceToast 2 gadi atpakaļ
vecāks
revīzija
3ea5b4e010
2 mainītis faili ar 29 papildinājumiem un 3 dzēšanām
  1. 24 1
      app/Helpers/ExtensionHelper.php
  2. 5 2
      config/settings.php

+ 24 - 1
app/Helpers/ExtensionHelper.php

@@ -2,6 +2,9 @@
 
 
 namespace App\Helpers;
 namespace App\Helpers;
 
 
+/**
+ * Summary of ExtensionHelper
+ */
 class ExtensionHelper
 class ExtensionHelper
 {
 {
     /**
     /**
@@ -60,7 +63,7 @@ class ExtensionHelper
 
 
     /**
     /**
      * Get all extensions
      * Get all extensions
-     * @return array
+     * @return array of all extension paths look like: app/Extensions/ExtensionNamespace/ExtensionName
      */
      */
     public static function getAllExtensions()
     public static function getAllExtensions()
     {
     {
@@ -79,4 +82,24 @@ class ExtensionHelper
 
 
         return $extensions;
         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;
+    }
 }
 }

+ 5 - 2
config/settings.php

@@ -1,5 +1,6 @@
 <?php
 <?php
 
 
+use App\Helpers\ExtensionHelper;
 use App\Settings\GeneralSettings;
 use App\Settings\GeneralSettings;
 use App\Settings\DiscordSettings;
 use App\Settings\DiscordSettings;
 use App\Settings\InvoiceSettings;
 use App\Settings\InvoiceSettings;
@@ -29,7 +30,7 @@ return [
         ServerSettings::class,
         ServerSettings::class,
         UserSettings::class,
         UserSettings::class,
         WebsiteSettings::class,
         WebsiteSettings::class,
-        TicketSettings::class
+        TicketSettings::class,
     ],
     ],
 
 
     /*
     /*
@@ -44,6 +45,8 @@ return [
      */
      */
     'migrations_paths' => [
     'migrations_paths' => [
         database_path('settings'),
         database_path('settings'),
+        ...ExtensionHelper::getAllExtensionMigrations()
+
     ],
     ],
 
 
     /*
     /*
@@ -88,7 +91,7 @@ return [
     'global_casts' => [
     'global_casts' => [
         DateTimeInterface::class => Spatie\LaravelSettings\SettingsCasts\DateTimeInterfaceCast::class,
         DateTimeInterface::class => Spatie\LaravelSettings\SettingsCasts\DateTimeInterfaceCast::class,
         DateTimeZone::class => Spatie\LaravelSettings\SettingsCasts\DateTimeZoneCast::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,
         Spatie\LaravelData\Data::class => Spatie\LaravelSettings\SettingsCasts\DataCast::class,
     ],
     ],