djl997 / laravel-actor-is-active
一个将在线状态设置为actor模型(大多数情况下是用户)的包。
0.1.2
2024-04-05 09:36 UTC
Requires
- php: ^8.0
- laravel/framework: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- nesbot/carbon: ^2.31|^3.0
README
此包提供了一种简单易行的方法来检查您的应用中的actor(大多数情况下是用户)是否在线或最近在线。在某些情况下,actor可以是某些逻辑,例如机器人、变量Cronjob、队列或其他您想监控的外部进程。
由于它基于Laravel缓存驱动程序,因此此包不需要任何数据库迁移。
要求
Laravel Actor is Online 需要 PHP 8+ 和 Laravel 6+。
安装
-
您可以通过composer安装此包
composer require djl997/laravel-actor-is-active
-
准备actor模型
namespace App\Models; use Djl997\LaravelActorIsActive\Traits\IsOnlineTrait; class Actor { use IsOnlineTrait; // .. }
-
设置在线状态
路由中间件(推荐用于Authenticables)
要自动更新您的应用程序中用户的在线状态,请将以下内容添加到您的 app/Http/Kernel.php
文件中
protected $middlewareGroups = [ 'web' => [ // .. \Djl997\LaravelActorIsActive\Http\Middleware\IsOnline::class, ] ];
手动
如果您想手动更新状态或中间件在您的案例中不适用
$model = Model::find(1); $model->touchOnline();
高级用法
$user = User::find(1); $user->isOnline(); // returns true if user is online $user->wasOnlineRecently(); // returns true if user was inline x minutes ago (by default 5-30 minutes, customizable via config) $user->lastOnlineAt(); // returns Carbon object of last online timestamp $user->getCacheActorOnlineKey(); // get the online cache key
贡献
欢迎贡献。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。