多個 Laravel 與 Lumen session 共享

lyxxxh發表於2019-04-06

兩個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 協議》,轉載必須註明作者和本文連結

相關文章