aleksa / laravel-visitors-statistics
此包已 弃用,不再维护。未建议替代包。
用于 Laravel 5 的简单访客追踪和统计包,可用于仪表板图表。
v7.0.0
2020-03-15 20:53 UTC
Requires
- php: ^7.1.3
- ext-zlib: *
- illuminate/database: ~7.0.0
- illuminate/http: ~7.0.0
- illuminate/routing: ~7.0.0
- illuminate/support: ~7.0.0
- maxmind-db/reader: ^1.4
- piwik/device-detector: ^3.11
Requires (Dev)
- orchestra/testbench: ^3.8
README
用于 Laravel 5 的简单访客追踪和统计包,可用于仪表板图表。包括控制器和路由,用于获取特定月份或年份的访客统计(所有和唯一访问次数)。您还可以获取每个国家的总访问次数。
安装
- 使用 composer 安装包
composer require aleksa/laravel-visitors-statistics
- 由于包自动将其中间件添加到
web组,您必须手动注册服务提供者
... 'providers' => [ ... Aleksa\LaravelVisitorsStatistics\Providers\VisitorStatisticsProvider::class, ... ], ...
- 运行迁移
php artisan migrate
- 发布配置
php artisan vendor:publish
并从列表中选择 Aleksa\LaravelVisitorsStatistics\Providers\VisitorStatisticsProvider
- 下载 MaxMind 数据库
php artisan maxmind:update
GeoIP
由于从外部 API(例如:ipstack、ipdata 等)获取数据需要时间,会减慢您的应用程序速度,并且还可能产生月度费用,该包使用本地 MaxMind 数据库和 maxmind-db/reader 包来读取其内容并定位访客。
对于更复杂的追踪,您应该使用类似 Google Analytics 的工具。
配置
| 名称 | 描述 | 默认值 |
|---|---|---|
| track_authenticated_users | 是否应该追踪认证用户 | false |
| track_ajax_request | 是否应该追踪 AJAX 请求 | false |
| login_route_path | 管理员登录路径,以便登录尝试不作为访问次数追踪 | 'admin' |
| prefix | 应用于所有统计获取路由的前缀 | 'admin' |
| middleware | 应用于所有统计获取路由的中间件 | '['web', 'auth']' |
| database_location | 存储 MaxMind 数据库的位置 | storage_path('app/maxmind.mmdb') |
| database_download_url | MaxMind 数据库下载 URL | MAXMIND_URL |
| auto_update | 是否让 Laravel 自动更新 MaxMind 数据库 | true |
注意:如果您将 auto_update 设置为 true,请确保添加 Laravel cron 条目,这是必要的,以便进行 任务调度。
获取统计信息
该包提供控制器和一系列路由,用于获取统计信息。思路是在仪表板上通过 AJAX 请求获取统计信息,并将数据解析到某些 JavaScript 图表库(如 Highcharts)中。
| 路由名称 | 路由 URI | 描述 |
|---|---|---|
| visitorstatistics.all_statistics | /statistics/{year}/{month?} | 获取给定年份或月份的统计信息。 |
| visitorstatistics.unique_statistics | /statistics/unique/{year}/{month?} | 获取给定年份或月份的唯一统计信息。 |
| visitorstatistics.total_statistics | /statistics/total/{year}/{month?} | 获取给定年份或月份的所有和唯一统计信息。 |
| visitorstatistics.countries | /statistics/countries | 获取每个国家的访问次数和百分比。 |
| visitorstatistics.available_dates | /statistics/available/{year?} | 获取有统计跟踪的年份或月份。 |
注意:所有路由均以前置配置值开头,并以JSON格式返回响应。
示例响应
/admin/statistics/2019
{
"data": {
"1": 712,
"2": 1379,
"3": 1095,
"4": 624,
"5": 1181,
"6": 271,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0
}
}
/admin/statistics/2019/6
{
"data": {
"1": 76,
"2": 33,
"3": 35,
"4": 54,
"5": 73,
"6": 0,
"7-26": "...",
"27": 0,
"28": 0,
"29": 0
}
}
/admin/statistics/total/2019
{
"all": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 271,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0
},
"unique": {
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 42,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0
}
}
/admin/statistics/countries
{
"data": [
{
"country": "Germany",
"count": 6,
"percentage": 40
},
{
"country": "United States",
"count": 4,
"percentage": 26.67
},
{
"country": "Unknown",
"count": 2,
"percentage": 13.33
},
{
"country": "Thailand",
"count": 1,
"percentage": 6.67
},
{
"country": "Russia",
"count": 1,
"percentage": 6.67
},
{
"country": "Serbia",
"count": 1,
"percentage": 6.67
}
]
}
/admin/statistics/available
{
"data": [
2019
]
}
收集的信息
这是跟踪每个访问者的数据。
| 名称 | 描述 |
|---|---|
| ip | 例如:'127.0.0.1' |
| 国家 | 例如:'塞尔维亚' |
| 城市 | 例如:'贝尔格莱德' |
| 设备 | 例如:'桌面' |
| 浏览器 | 例如:'Chrome' |
许可
这是一个开源软件,根据MIT许可授权。