From 9386f7d0e7e44d30425cb54877e94b8372edc552 Mon Sep 17 00:00:00 2001 From: Amir Yeganemehr Date: Wed, 22 Oct 2025 14:30:44 +0330 Subject: [PATCH] refactor: replace grammar name check with grammar type check --- src/LaravelModelUuidServiceProvider.php | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/LaravelModelUuidServiceProvider.php b/src/LaravelModelUuidServiceProvider.php index 014fb7b..7ea057d 100644 --- a/src/LaravelModelUuidServiceProvider.php +++ b/src/LaravelModelUuidServiceProvider.php @@ -6,6 +6,9 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\ColumnDefinition; use Illuminate\Database\Schema\Grammars\Grammar; +use Illuminate\Database\Schema\Grammars\MySqlGrammar; +use Illuminate\Database\Schema\Grammars\PostgresGrammar; +use Illuminate\Database\Schema\Grammars\SQLiteGrammar; use Illuminate\Support\Fluent; use Spatie\LaravelPackageTools\Commands\InstallCommand; use Spatie\LaravelPackageTools\Package; @@ -26,12 +29,17 @@ public function configurePackage(Package $package): void public function packageRegistered() { Grammar::macro('typeEfficientUuid', function (Fluent $column) { - return match (class_basename(static::class)) { - 'MySqlGrammar' => sprintf('binary(%d)', $column->length ?? 16), - 'PostgresGrammar' => 'bytea', - 'SQLiteGrammar' => 'blob(256)', - default => throw new UnknownGrammarClass - }; + if ($this instanceof MySqlGrammar) { + return sprintf('binary(%d)', $column->length ?? 16); + } + if ($this instanceof PostgresGrammar) { + return 'bytea'; + } + if ($this instanceof SQLiteGrammar) { + return 'blob(256)'; + } + + throw new UnknownGrammarClass; }); Blueprint::macro('efficientUuid', function ($column): ColumnDefinition {