aleksa/laravel-visitors-statistics

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

用于 Laravel 5 的简单访客追踪和统计包,可用于仪表板图表。

v7.0.0 2020-03-15 20:53 UTC

This package is auto-updated.

Last update: 2022-01-06 20:38:01 UTC


README

Packagist Packagist Packagist

用于 Laravel 5 的简单访客追踪和统计包,可用于仪表板图表。包括控制器和路由,用于获取特定月份或年份的访客统计(所有和唯一访问次数)。您还可以获取每个国家的总访问次数。

安装

  1. 使用 composer 安装包
composer require aleksa/laravel-visitors-statistics
  1. 由于包自动将其中间件添加到 web 组,您必须手动注册服务提供者
...
'providers' => [
    ...
    Aleksa\LaravelVisitorsStatistics\Providers\VisitorStatisticsProvider::class,
    ...
],
...
  1. 运行迁移
php artisan migrate
  1. 发布配置
php artisan vendor:publish

并从列表中选择 Aleksa\LaravelVisitorsStatistics\Providers\VisitorStatisticsProvider

  1. 下载 MaxMind 数据库
php artisan maxmind:update

GeoIP

由于从外部 API(例如:ipstackipdata 等)获取数据需要时间,会减慢您的应用程序速度,并且还可能产生月度费用,该包使用本地 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许可授权。