hobbiot / cacheable-auth-user

为 Laravel 5.3 缓存 Auth::user()。此包为 Laravel 添加了新的驱动程序。

1.0.1 2017-06-04 04:17 UTC

This package is not auto-updated.

Last update: 2024-09-27 22:26:21 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

为 Laravel 5.3 或 5.4 缓存 Auth::user()。

安装

Composer

composer require hobbiot/cacheable-auth-user

Laravel

app.php

在您的 config/app.php 中,将 HobbIoT\Auth\CacheableAuthUserServiceProvider::class 添加到 providers 数组的末尾

'providers' => [
    ...
        HobbIoT\Auth\CacheableAuthUserServiceProvider::class,
    ...
],

auth.php

在您的 config/auth.php 中更改用户提供者的驱动。现在您可以使用 "cacheableEloquent"。

...
    'providers' => [
        'users' => [
            'driver' => 'cacheableEloquent',
            'model' => App\User::class,
        ],
		// e.g.
        'admin' => [
            'driver' => 'cacheableEloquent',
            'model' => App\Administrator::class,
        ],
    ],
...
],

类需要扩展 Authenticatable (Illuminate\Foundation\Auth\User) 并使用 trait Notifiable (Illuminate\Notifications\Notifiable),就像 App\User::class 一样。

补充说明

  • 缓存有效期为 60 分钟。

  • 缓存键为 ModelClassName_By_Id_idModelClassName_By_Id_Token_id

  • 使用 Eloquent updated 事件监听器清除缓存,需要使用 model->save()。当用户在个人资料页面更新其姓名时,将自动触发 updated 事件,(监听事件并) 清除缓存。之后从资源(数据库)重新加载。

    Laravel 官方文档说明:

注意:当通过 Eloquent 发出大量更新时,更新模型的事件 savedupdated 不会为更新模型触发。这是因为当发出大量更新时,模型永远不会被实际检索。