. */ declare(strict_types=1); namespace FireflyIII\Providers; use FireflyIII\Http\Middleware\StartFireflySession; use Illuminate\Session\SessionManager; use Illuminate\Support\ServiceProvider; /** * @codeCoverageIgnore * Class FireflySessionProvider */ class FireflySessionProvider extends ServiceProvider { /** * Register the service provider. */ public function register(): void { $this->registerSessionManager(); $this->registerSessionDriver(); $this->app->singleton(StartFireflySession::class); } /** * Register the session driver instance. */ protected function registerSessionDriver(): void { $this->app->singleton( 'session.store', function ($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. return $app->make('session')->driver(); } ); } /** * Register the session manager instance. */ protected function registerSessionManager(): void { $this->app->singleton( 'session', function ($app) { return new SessionManager($app); } ); } }