From 5e69d6075e2e2a4204d172d36a6864b32f9014dc Mon Sep 17 00:00:00 2001 From: Dries Vints Date: Sat, 27 Jun 2020 16:02:46 +0200 Subject: [PATCH] Use singleton for factory --- src/BladeIconsServiceProvider.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/BladeIconsServiceProvider.php b/src/BladeIconsServiceProvider.php index 5277d69..92c4aa6 100644 --- a/src/BladeIconsServiceProvider.php +++ b/src/BladeIconsServiceProvider.php @@ -5,6 +5,7 @@ namespace BladeUI\Icons; use Illuminate\Filesystem\Filesystem; +use Illuminate\Foundation\Application; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; @@ -29,17 +30,19 @@ private function registerConfig(): void private function registerFactory(): void { - $config = $this->app->make('config')->get('blade-icons'); + $this->app->singleton(Factory::class, function (Application $app) { + $config = $app->make('config')->get('blade-icons'); - $factory = new Factory(new Filesystem(), $config['class']); + $factory = new Factory(new Filesystem(), $config['class'] ?? ''); - foreach ($config['sets'] as $set => $options) { - $options['path'] = $this->app->basePath($options['path']); + foreach ($config['sets'] ?? [] as $set => $options) { + $options['path'] = $app->basePath($options['path']); - $factory->add($set, $options); - } + $factory->add($set, $options); + } - $this->app->instance(Factory::class, $factory); + return $factory; + }); } private function bootDirectives(): void