官方介绍
Lumen 虽然与 Laravel 使用了相同的底层类库实现,但是因 Lumen 面向的是无状态 API 的开发,不支持 session,所以默认的配置不同。Lumen 必须使用无状态的机制来实现,如 API 令牌(Token)。
也就是说Lumen内核已经剥离了Cookie、Session,如果需要使用到,需要增加安装,经过一阵折腾,终于整好了,顺便记录下来。
增加session配置
1 2 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,增加以下内容
1 2 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
1 2 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'; });
|
生命的意义在于折腾!