feat: Added Extensionmigrations to laravel-settings config

This commit is contained in:
IceToast 2023-03-04 15:20:49 +01:00 committed by IceToast
parent 322bfed972
commit 3ea5b4e010
2 changed files with 29 additions and 3 deletions

View file

@ -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;
}
}

View file

@ -1,5 +1,6 @@
<?php
use App\Helpers\ExtensionHelper;
use App\Settings\GeneralSettings;
use App\Settings\DiscordSettings;
use App\Settings\InvoiceSettings;
@ -29,7 +30,7 @@ return [
ServerSettings::class,
UserSettings::class,
WebsiteSettings::class,
TicketSettings::class
TicketSettings::class,
],
/*
@ -44,6 +45,8 @@ return [
*/
'migrations_paths' => [
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,
],