diff --git a/demo/laravel/config/flasher.php b/demo/laravel/config/flasher.php new file mode 100644 index 00000000..1bec23f3 --- /dev/null +++ b/demo/laravel/config/flasher.php @@ -0,0 +1,5 @@ + false, +]; diff --git a/src/Laravel/FlasherServiceProvider.php b/src/Laravel/FlasherServiceProvider.php index bc324595..9264c36f 100644 --- a/src/Laravel/FlasherServiceProvider.php +++ b/src/Laravel/FlasherServiceProvider.php @@ -34,6 +34,7 @@ use Flasher\Prime\Storage\Filter\FilterFactory; use Flasher\Prime\Storage\Storage; use Flasher\Prime\Storage\StorageManager; use Illuminate\Container\Container; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Foundation\Application; use Illuminate\Foundation\Console\AboutCommand; @@ -222,6 +223,10 @@ final class FlasherServiceProvider extends PluginServiceProvider private function registerFlasherMiddleware(): void { + if(!$this->getConfig('inject_assets')) { + return; + } + $this->app->singleton(FlasherMiddleware::class, static function (Application $app) { $flasher = $app->make('flasher'); $cspHandler = $app->make('flasher.csp_handler'); diff --git a/src/Laravel/Support/PluginServiceProvider.php b/src/Laravel/Support/PluginServiceProvider.php index 7e576b4b..b8506363 100644 --- a/src/Laravel/Support/PluginServiceProvider.php +++ b/src/Laravel/Support/PluginServiceProvider.php @@ -6,6 +6,7 @@ namespace Flasher\Laravel\Support; use Flasher\Prime\Factory\NotificationFactoryLocator; use Flasher\Prime\Plugin\PluginInterface; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Foundation\Application; use Illuminate\Contracts\Foundation\CachesConfiguration; use Illuminate\Support\ServiceProvider; @@ -35,6 +36,14 @@ abstract class PluginServiceProvider extends ServiceProvider return rtrim($this->getResourcesDir(), '/').'/config.php'; } + protected function getConfig(string $key = null, mixed $default = null): mixed + { + /** @var Repository $config */ + $config = $this->app->make('config'); + + return $key ? $config->get('flasher.'.$key, $default) : $config; + } + protected function getResourcesDir(): string { $r = new \ReflectionClass($this);