torgodly / visitor
Laravel 访客
Requires
- php: >=7.2
- illuminate/support: ^5.1|6.*|7.*|8.*|9.*|10.*
- jenssegers/agent: ^2.6
- ua-parser/uap-php: ^3.9
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: >=7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-25 03:35:51 UTC
README
Laravel Visitor
这是一个用于提取和访问访客信息的 Laravel 扩展包,例如 browser
、ip
、device
等。
在这个扩展包中,您可以识别在线用户并确定用户是否在线。
安装
通过 composer
composer require torgodly/visitor
配置
如果您使用的是 Laravel 5.5 或更高版本,则无需添加提供者和别名。
# In your providers array. 'providers' => [ ... torgodly\Visitor\Provider\VisitorServiceProvider::class, ], # In your aliases array. 'aliases' => [ ... 'Visitor' => torgodly\Visitor\Facade\Visitor::class, ],
然后,运行以下命令以发布迁移并创建表
php artisan vendor:publish php artisan migrate
使用方法
您可以在控制器中使用 $request->visitor()
访问 visitor's information
,并且您可以在任何地方使用 visitor()
助手函数访问访客信息。
我们有以下方法来检索访客信息
device
: 设备名称platform
: 平台名称browser
: 浏览器名称languages
: 语言名称ip
: 客户端 IPrequest
: 整个请求输入useragent
: 整个用户代理isOnline
: 确定当前(或指定)用户是否在线
$request->visitor()->browser(); // firefox $request->visitor()->visit($post); // create log for post $request->visitor()->setVisitor($user)->visit($post); // create a log which says $user has visited $post
存储日志
您可以使用以下 visit
方法创建日志
visitor()->visit(); // create a visit log
在您的模型中使用 torgodly\Visitor\Traits\Visitable
特性,然后您可以像下面这样为模型保存访问日志
// or you can save log like the below visitor()->visit($model); // or like the below $model->createVisitLog(); // you can say which user has visited the given $model $model->createVisitLog($user); // or like the below visitor()->setVisitor($user)->visit($model);
可以使用 visits
关系加载模型视图。
您可以像下面这样统计模型访问次数
$model->visitLogs()->count();
可以通过 IP 和模型统计唯一用户。
// by ip $model->visitLogs()->distinct('ip')->count('ip'); // by user's model $model->visitLogs()->visitor()->count();
在您的 User
类中使用 torgodly\Visitor\Traits\Visitor
,然后您可以运行以下代码
$user->visit(); // create a visit log $user->visit($model); // create a log which says, $user has visited $model
检索和确定在线用户
首先在您的 User
类中使用 torgodly\Visitor\Traits\Visitor
。
然后您可以检索 User
类的实例在线用户并确定用户是否在线。
visitor()->onlineVisitors(User::class); // returns collection of online users User::online()->get(); // another way visitor()->isOnline($user); // determines if the given user is online $user->isOnline(); // another way
自动记录
您的应用程序可以使用 LogVisits
中间件自动存储访客日志。
如果您想自动保存日志,请添加 torgodly\Visitor\Middlewares\LogVisits
中间件。
该中间件将为绑定在路由(路由模型绑定)并使用 torgodly\Visitor\Traits\Visitable
特性的模型存储日志。