itime / cacheable-auth-user
为Laravel 5缓存Auth::user()。此包为Laravel添加了新的驱动。
1.0.2
2017-11-19 03:01 UTC
Requires
- php: >=5.6.4
- laravel/framework: 5.*.*
README
为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_id和ModelClassName_By_Id_Token_id。
-
使用Eloquent updated事件监听器清除缓存,需要使用
model->save()
。当用户在个人资料页面上更新其姓名时,将自动触发updated事件,(监听事件并)清除缓存。之后从资源(数据库)重新加载。Laravel官方文档说明:
注意:当通过Eloquent发出大量更新时,对于更新的模型,将不会触发saved和updated模型事件。这是因为当发出大量更新时,模型实际上从未被检索。