官方介绍
Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。
也就是说Lumen内核已经剥离了Cookie、Session,如果需要使用到,需要增加安装,经过一阵折腾,终于整好了,顺便记录下来。
增加session配置
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | return ['driver'          => 'file',
 'lifetime'        => 120,
 'expire_on_close' => false,
 'encrypt'         => false,
 'files'           => storage_path('framework/sessions'),
 'connection'      => 'session',
 'table'           => 'sessions_laravel',
 'store'           => null,
 'lottery'         => [2, 100],
 'cookie'          => 'PHPSESSID',
 'path'            => '/',
 'domain'          => env('SESSION_DOMAIN', null),
 'secure'          => false,
 'http_only'       => true,
 ];
 
 | 
注册Session中间件及服务提供者
修改bootstrap/app.php,增加以下内容
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | $app->middleware([
 \Illuminate\Session\Middleware\StartSession::class,
 ]);
 
 $app->register(Illuminate\Session\SessionServiceProvider::class);
 
 $app->configure('session');
 
 $app->bind('Illuminate\Session\SessionManager', 'session');
 
 | 
测试
编辑routes/web.php
| 12
 3
 4
 5
 6
 7
 8
 
 | $router->get('/', function () {$key = 'key';
 if (app('session')->has($key)) {
 return app('session')->get($key);
 }
 app('session')->put($key, 'value');
 return 'set session success';
 });
 
 | 
生命的意义在于折腾!