abhibunt/active-users

一个用于轻松检索当前在线的活跃用户和访客的 Laravel 包。

1.0 2022-11-27 09:28 UTC

This package is auto-updated.

Last update: 2024-09-27 13:35:36 UTC


README

这是一个小巧、简单的包,用于查看当前在线的用户。

安装

使用 composer 安装

composer require abhibunt/active-users

设置

会话和数据库

目前,此包只支持 'database' 类型的会话存储。打开 .env 文件,将会话驱动程序更改为数据库

SESSION_DRIVER=database

并确保使用以下命令发布默认会话表:

php artisan session:table

php artisan migrate

提供者和别名

为了使用 Active 类,需要引用完整的供应商命名空间,或者在需要使用它的文件顶部导入该类。例如:

\Rainwater\Active\Active::users();

或者

use Rainwater\Active\Active;
Active::users();

此包还包含一个提供者和别名,以简化操作。要正确设置这些,打开 config/app.php 并将以下内容添加到 providers 数组中

Rainwater\Active\ActiveServiceProvider::class

并将以下内容添加到 aliases 数组中

'Active' => Rainwater\Active\ActiveFacade::class

使用方法

获取最近的活动

在顶部导入 Active 门面,然后执行简单的查询。

// Import at the top
use Active;


// Find latest users
$users = Active::users()->get();

// Loop through and echo user's name
foreach ($users as $activity) {
    echo $activity->user->name . '<br>';
}

默认情况下,'users' 方法将返回在过去 5 分钟内活跃的用户。如果您想显示不同的时间段,请使用以下函数

$users = Active::users(3)->get();   				// Last 3 minutes
$users = Active::usersWithinSeconds(30)->get();  	// Get active users within the last 30 seconds
$users = Active::usersWithinMinutes(10)->get();  	// Get active users within the last 10 minutes
$users = Active::usersWithinHours(1)->get();     	// Get active users within the last 1 hour

上面列出的所有函数都返回 Eloquent 查询,因此您可以对结果执行任何其他模型都可以执行的操作

$numberOfUsers = Active::users()->count();        // Count the number of active users

排序方法

还有几个方便的排序方法

$users = Active::users()->mostRecent()->get();   // Get active users and sort them by most recent
$users = Active::users()->orderByUsers('email')->get(); // Sort by the email column on the users table.

访客

您还可以使用与上述用户相同的所有方法来查看在线访客

$guests = Active::guests(1)->get();   				// Last 1 minute
$guests = Active::guests(3)->get();   				// Last 3 minutes
$guests = Active::guestsWithinSeconds(30)->get();  	// Get active guests within the last 30 seconds
$guests = Active::guestsWithinMinutes(10)->get();  	// Get active guests within the last 10 minutes
$guests = Active::guestsWithinHours(1)->get();     	// Get active guests within the last 1 hour

$numberOfGuests = Active::guests()->count();      // Count the number of active guests

非常感谢 thomastkim/laravel-online-users,本包基于此,具有很大的借鉴意义。

许可证

此包是免费软件,根据 MIT 许可证的条款分发。