多个 Laravel 与 Lumen session 共享
两个laravel session共享
满足条件
- 同一域名 例如: a.r.com r.com b.r.com hello.r.com
- APP_KEY 值统一
- session存储统一配置 建议redis 方便快捷
- session.php的domain统一为 .域名 注意前面有点 我的就是 .r.com
这些百度都有
lumen和laravel共享 (我最近用的 百度没找到)
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Session\Middleware\StartSession::class
这个两个中间件都是必须要的
\Illuminate\Session\Middleware\StartSession::class
这个不说了 主要是下面那个
启用EncryptCookies::class (lumen和laraevl的共享 这是比较坑的)
但是\App\Http\Middleware\EncryptCookies::class
不会
把laravel的 \App\Http\Middleware\EncryptCookies::class 复制过来 在bootstrap/app.php加载上
来看看源码
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
];
}
注意的是lumen是没有安装Illuminate\Cookie\Middleware\EncryptCookies的
因此需要手动安装composer require illuminate/cookie@lumen版本.*
没问题了 end
使用场景
比如a.r.com是官网 hello.r.com是商城
用户在官网登录了就不需要在商城登录了
我遇到的
因为有一个程序写好了一个东西 又加一个东西 嫌弃laravel太慢了 所以改用lumen做接口 还有种种原因
laravel慢
输出一个hello加载近500个文件
laravel 300ms
tp5 50ms
lumen 50ms
如果每次接口都要300ms+本来的是时间 是挺慢的
优化数据库什么的 我的小项目完全不需要 我的项目优化他有个毛线用 数据量小 还不如取消一个中间件快
至于为什么laravel这么慢我还用?
php是3ms 为什么还那么多人用框架 大家都懂的
为了性能
数据库量>500 最好别用orm 查询5k一次性消耗>250m内存 耗时十几秒 改用db 0.6秒
不是sql慢 看了debugbar的sql 好像是十几ms 而是collection太大了
还有Storage::url 循环>500 也最好别用 封装一个公共函数返回路径比较好
线上
opcache一定开
最后
我手真贱
不小心点了qq邮箱 然后点返回 内容还在 ~ 万幸
ps
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: