itime/cacheable-auth-user

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

1.0.2 2017-11-19 03:01 UTC

This package is auto-updated.

Last update: 2024-09-06 20:50:06 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模型事件。这是因为当发出大量更新时,模型实际上从未被检索。