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 特性的模型存储日志。
