benswinburne / laravel-session-started-event by ben.swinburne

Fires an event when a session is started in Laravel for use in service providers
9,340
2
2
Package Data
Maintainer Username: ben.swinburne
Maintainer Contact: ben.swinburne@gmail.com (benswinburne)
Package Create Date: 2017-06-28
Package Last Update: 2017-07-13
Language: PHP
License: MIT
Last Refreshed: 2025-02-09 15:07:44
Package Statistics
Total Downloads: 9,340
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 1
Total Open Issues: 1

Laravel Session Started Event

This package fires an event which can be used in service providers (or indeed anywhere an an application) to execute code when a session is started.

Installation

Add the service provider to the providers array in config/app.php.

'providers' => [
    ...
    Swinburne\LaravelSessionStarted\SessionStartedServiceProvider::class,
    ...
],

Replace the existing Laravel StartSession middleware with that from this package in app/Http/Kernel.php. It's in the web group by default.

Replace

\Illuminate\Session\Middleware\StartSession::class

With

\Swinburne\LaravelSessionStarted\Http\Middleware\StartSession::class

For example

protected $middlewareGroups = [
    'web' => [
        ...
        \Swinburne\LaravelSessionStarted\Http\Middleware\StartSession::class,
        ...
    ]
    ...

Usage

Once installed you may listen for the following event which is fired upon session start.

\Swinburne\LaravelSessionStarted\Events\SessionStarted

For example, in the boot() method of a service provider you may listen to the event in the following way.

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Event;
use Illuminate\Support\ServiceProvider;
use Swinburne\LaravelSessionStarted\Events\SessionStarted;

class AppServiceProvider extends ServiceProvider
{
    /**
    * Boot the application services.
    *
    * @return void
    */
    public function boot()
    {
        Event::listen(SessionStarted::class, function ($event) {
            echo "My session was started";
        });
    }
}