. */ declare(strict_types=1); namespace FireflyIII\Providers; use FireflyIII\Http\Middleware\StartFireflySession; use Illuminate\Session\SessionManager; use Illuminate\Support\ServiceProvider; use Override; /** * Class FireflySessionProvider */ class FireflySessionProvider extends ServiceProvider { /** * Register the service provider. */ #[Override] public function register(): void { $this->registerSessionManager(); $this->registerSessionDriver(); $this->app->singleton(StartFireflySession::class); } /** * Register the session manager instance. */ protected function registerSessionManager(): void { $this->app->singleton( 'session', static fn ($app) => new SessionManager($app) ); } /** * Register the session driver instance. */ protected function registerSessionDriver(): void { $this->app->singleton( 'session.store', static fn ($app) // First, we will create the session manager which is responsible for the // creation of the various session drivers when they are needed by the // application instance, and will resolve them on a lazy load basis. => $app->make('session')->driver() ); } }