Laravel 優化 Auth 使用快取驅動

yangjisen發表於2020-02-08

安裝

composer require "yangjisen/laravel-cache-provider"

Laravel 應用

  • config/app.php 註冊 ServiceProvider (Laravel 5.5 + 無需手動註冊)
'providers' => [
     /* 
     * Package Service Providers... 
     */ 
     YangJiSen\CacheUserProvider\ServiceProvider::class,
 ]
  • 建立配置檔案:
php artisan vendor:publish --provider="YangJiSen\CacheUserProvider\ServiceProvider"
  • 配置檔案說明

    <?php
    return [
    /*
    |--------------------------------------------------------------------------
    | 快取的儲存時間
    |--------------------------------------------------------------------------
    |
    | 預設值(秒):   3600
    | 注意: Laravel5.8以前快取單位由為分鐘, 此處需要自行修改時間
    | @see https://learnku.com/docs/laravel/5.8/upgrade#cache-ttl-in-seconds
    |
    */ 
     'cache_ttl' => env('CACHE_USER_TTL', 3600),
    
     /*
     |-------------------------------------------------------------------------- 
     | 快取的儲存方式
     |-------------------------------------------------------------------------- 
     | 
     | single: 所有的儲存為一個快取鍵值
     | every: 按照單個使用者進行快取
     | 
     */ 
     'cache_channel' => env('CACHE_USER_CHANNEL', 'every'),
    
    /*
    |--------------------------------------------------------------------------
    | 渴望載入的關聯模型
    |--------------------------------------------------------------------------
    |
    | String: a,b,c
    |
    | 使用關聯載入時:
    | 關聯的資料僅在第一次查詢時載入,快取後不會自動進行更新,需要自行實現關聯更新時刪除快取資料
    |
    | @param  \Illuminate\Database\Eloquent\Model  $user
    | 呼叫刪除方法: YangJiSen\CacheUserProvider\CacheForget::CacheForget($user);
    |
    */
    'model_with' => env('CACHE_USER_MODEL_WITH'),
    ];
  • 將配置檔案 config/auth.php 中 將授權提供者的驅動修改為 cache 即可

'providers' => [
     'users' => [ 
         'driver' => 'cache',
         'model' => App\User::class
    ],
 ]
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章