From 7aa4b5568d56511fc323bee9ee1d7f2039c25ff9 Mon Sep 17 00:00:00 2001 From: Mohammad Alavi Date: Fri, 3 Jan 2025 20:10:28 +0330 Subject: [PATCH] feat: allow adding self aliases --- .../Providers/ApiatoServiceProvider.php | 32 +++++++++++-------- .../Providers/ApiatoServiceProviderTest.php | 15 ++++++++- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/Foundation/Providers/ApiatoServiceProvider.php b/src/Foundation/Providers/ApiatoServiceProvider.php index 6d74100b1..b9997a1dd 100644 --- a/src/Foundation/Providers/ApiatoServiceProvider.php +++ b/src/Foundation/Providers/ApiatoServiceProvider.php @@ -8,6 +8,7 @@ use Apiato\Commands\SeedDeploymentData; use Apiato\Commands\SeedTestingData; use Apiato\Foundation\Apiato; +use Apiato\Foundation\DatabaseSeeder; use Apiato\Foundation\Loaders\HelperLoader; use Apiato\Foundation\Loaders\Loader; use Apiato\Foundation\Support\PathHelper; @@ -17,6 +18,7 @@ use Apiato\Generator\GeneratorsServiceProvider; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Contracts\Foundation\Application; +use Illuminate\Foundation\AliasLoader; use Illuminate\Foundation\Console\AboutCommand; use Illuminate\Http\Request; use Illuminate\Support\Facades\File; @@ -34,6 +36,10 @@ class ApiatoServiceProvider extends AggregateServiceProvider MigrationServiceProvider::class, ]; + protected array $aliases = [ + 'DatabaseSeeder' => DatabaseSeeder::class, + ]; + public function register(): void { $this->providers = $this->mergeProviders($this->providers, $this->serviceProviders()); @@ -112,9 +118,12 @@ private function setUpTestProviders(Application $app): void public function boot(): void { + $this->addAliases(); $this->runBoot(); - $this->runLoaders(); + $this->load( + HelperLoader::create(), + ); $this->publishes([ __DIR__ . '/../../../config/apiato.php' => app_path('Ship/Configs/apiato.php'), @@ -125,19 +134,6 @@ public function boot(): void AboutCommand::add('Apiato', static fn () => ['Version' => '13.0.0']); } - public function runLoaders(): void - { - $this->load( - HelperLoader::create(), - ); - - // $this->loadShipMigrations(); - - foreach (PathHelper::getContainerPaths() as $containerPath) { - // $this->loadContainerMigrations($containerPath); - } - } - private function load(Loader ...$loader): void { foreach ($loader as $load) { @@ -159,4 +155,12 @@ static function (Request $request) { ); } } + + private function addAliases(): void + { + $loader = AliasLoader::getInstance(); + foreach ($this->aliases as $alias => $class) { + $loader->alias($alias, $class); + } + } } diff --git a/tests/Functional/Providers/ApiatoServiceProviderTest.php b/tests/Functional/Providers/ApiatoServiceProviderTest.php index 08d5da41d..cb14710ac 100644 --- a/tests/Functional/Providers/ApiatoServiceProviderTest.php +++ b/tests/Functional/Providers/ApiatoServiceProviderTest.php @@ -1,5 +1,6 @@ getAliases(); foreach ($aliases as $alias => $class) { - expect($availableAliases[$alias])->toBe($class); + expect($availableAliases)->toHaveKey($alias, $class); + } + }); + + it('can add its own aliases', function (): void { + $aliases = [ + 'DatabaseSeeder' => DatabaseSeeder::class, + ]; + + $availableAliases = AliasLoader::getInstance()->getAliases(); + + foreach ($aliases as $alias => $class) { + expect($availableAliases)->toHaveKey($alias, $class); } });