多个 Laravel 与 Lumen session 共享

两个laravel session共享

满足条件
  1. 同一域名 例如: a.r.com r.com b.r.com hello.r.com
  2. APP_KEY 值统一
  3. session存储统一配置 建议redis 方便快捷
  4. 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一定开

最后

我手真贱
多个 Laravel 与 Lumen session 共享

不小心点了qq邮箱 然后点返回 内容还在 ~ 万幸

ps

多个 Laravel 与 Lumen session 共享

本作品采用《CC 协议》,转载必须注明作者和本文链接
专心学习不瞎搞
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
87
粉丝
105
喜欢
480
收藏
717
排名:109
访问:8.7 万
私信
所有博文
社区赞助商