voerro/laravel-visitor-tracker

此包已被废弃,不再维护。未建议替代包。

Laravel 5的访客跟踪和统计

v1.2.2 2018-11-21 07:16 UTC

README

Packagist Packagist Build Status StyleCI Packagist

跟踪认证和未认证访客、登录尝试、AJAX请求等。包括控制器、一系列路由和视图来显示统计信息,以及一个帮助类来轻松获取统计信息(如果您想自行显示统计信息)。

在线演示

安装 - 基础

  1. 使用composer安装此包
composer require voerro/laravel-visitor-tracker
  1. 运行迁移以安装包的表格来记录访问,执行以下操作
php artisan migrate
  1. 将中间件添加到app/Http/Kernel.php
protected $middlewareGroups = [
    ...
    'web' => [
        ...
        \Voerro\Laravel\VisitorTracker\Middleware\RecordVisits::class,
    ],
    ...
];
  1. Laravel 5.5有包自动发现功能。如果您使用的是旧版本,请在config/app.php中注册服务提供者
...
'providers' => [
    ...
    Voerro\Laravel\VisitorTracker\VisitorTrackerServiceProvider::class,
    ...
],
...

如果您想自行获取和显示访客统计信息,请在该文件中注册外观

...
'aliases' => [
    ...
    'VisitStats' => Voerro\Laravel\VisitorTracker\Facades\VisitStats::class,
    ...
],
...
  1. 通过运行以下命令发布配置文件、资产和视图
php artisan vendor:publish

在提供的列表中选择Voerro\Laravel\VisitorTracker\VisitorTrackerServiceProvider

安装 - Geoapi

跟踪器使用外部API获取地理位置数据。要关闭geoapi,将配置文件中的geoip_on设置设置为false。要更改提供商,更改geoip_driver字段。支持的驱动程序在配置文件中列出。您可能需要根据所选驱动程序填写额外的API密钥。

由于从外部API获取数据需要时间,因此操作被排队并异步执行。这是通过Laravel作业完成的,可能不支持共享主机。支持多个驱动程序。我们将描述如何设置数据库驱动程序。

首先,在您的.env文件中设置以下内容

QUEUE_DRIVER=database

然后依次运行以下命令

php artisan queue:table
php artisan queue:failed-table
php artisan migrate

最后,您需要启动一个工人来处理队列。运行以下命令并保持其运行

php artisan queue:work

有关队列和作业的更多信息,请参阅Laravel文档本节描述了如何在进程失败时自动重新启动队列工人。

提示:每次您更改包的配置文件时,都需要重新启动工人。

配置

查看config/visitortracker.php文件。它有很好的注释,不需要额外的说明。您可以在其中排除某些用户组、单个用户和某些请求的跟踪,以及其他事项。

测试

在测试环境中禁用了外部API调用以检索地理位置信息。否则,由于跟踪器跟踪所有请求,测试将运行得非常慢。

显示统计信息

该软件包包含一个控制器以及一组用于显示统计数据的路由和视图。您可以使用VisitStats类自行获取和显示统计数据,但我们会稍后讨论。提供的视图简单且使用标准Bootstrap类进行样式设置。

要安装内置路由,请将以下行添加到您的routes.php文件中

VisitStats::routes();

您可以将此行放在一个组内,以通过中间件限制访问或为路由添加前缀。例如,如下所示

Route::middleware('auth')->prefix('admin')->group(function () {
    VisitStats::routes();
});

您可以将视图集成到现有的布局中。查看配置文件的Views部分。所有路由都进行了命名,因此您可以轻松添加和设置所有页面的链接。以下是完整的路由列表。

路由名称 描述
visitortracker.summary 一个小型摘要页面
visitortracker.all_requests 所有请求的列表
visitortracker.visits 页面访问列表(与所有请求相同,但减去AJAX调用、机器人访问和登录尝试)
visitortracker.ajax_requests AJAX请求列表
visitortracker.bots 来自机器人/爬虫的访问列表
visitortracker.login_attempts 登录尝试列表(请参阅配置文件的“跟踪登录尝试”部分)
visitortracker.countries 按最后访问日期排序的访问次数和独特访客数量的国家列表
visitortracker.os 按最后访问日期排序的访问次数和独特访客数量的操作系统列表
visitortracker.browsers 按最后访问日期排序的访问次数和独特访客数量的浏览器列表
visitortracker.languages 按最后访问日期排序的访问次数和独特访客数量的浏览器语言列表
visitortracker.unique 按最后访问日期排序的独特访客(独特IP)列表
visitortracker.users 按最后访问日期排序的注册用户列表,以及按访问次数排序的总访问次数
visitortracker.urls 按最后访问日期排序的URL列表,包括总访问次数和独特访客数量

收集的信息

这是跟踪器正在收集的数据。

数据库字段 描述
user_id 执行请求的认证用户的ID
ip 例如,'127.0.0.1'
method 例如,'GET'
is_ajax 请求是否是AJAX请求
url 例如,'http://voerro.com'
referer 例如,'http://google.com'
user_agent 例如,'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0'
is_desktop 请求是否来自桌面
is_mobile 请求是否来自移动设备
is_bot 访客是否是机器人/爬虫
bot 例如,'Googlebot'
os_family 例如,'linux'
os 例如,'Ubuntu'
browser_family 例如,'firefox'
browser 例如,'Firefox 58.0'
is_login_attempt 请求是否是登录尝试
country 例如,'Russia'
country_code 例如,'RU'
city 例如,'Moscow'
lat 纬度
long 经度
browser_language_family 例如,'en'
browser_language 例如,'en-US'
created_at 标准Laravel字段,也用作访问/请求的日期时间

该软件包使用piwik/device-detector来解析用户代理。

手动获取和显示统计数据

如果您对提供的视图不满意,可以使用Voerro\Laravel\VisitorTracker\Facades\VisitStats类来获取统计数据,然后创建自己的控制器和视图来显示这些数据。

查看位于src/Controllers/StatisticsController.php的控制器,了解如何使用该类,它相当简单。原始类位于src/VisitStats.php,其中所有方法都有文档说明,以防您需要更多信息。

许可证

这是一个开源软件,遵循MIT许可证