codemastersolucoes/laravel-visitor-tracker

Laravel 5的访问跟踪和统计包。由voerro/laravel-visitor-tracker分支而来。

v1.2.7 2019-01-01 20:17 UTC

README

此包已从voerro/laravel-visitor-tracker分支并由codemastersolucoes/laravel-visitor-tracker修改

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

实时演示

安装 - 基本安装

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

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

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

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

  1. config/databases.php中为Laravel Visitor Tracker创建一个名为visits_tracker的连接,连接名称不能更改。示例:#MySql
'visits_tracker' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
],

#MySql

'visits_tracker' => [
    'driver' => 'pgsql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '5432'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
    'sslmode' => 'prefer',
],

#Sql Server

'visits_tracker' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '1433'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'collation' => 'SQL_Latin1_General_CP1_CI_AS',
    'prefix' => '',
],

安装 - 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 部分。所有路由都命名了,您可以轻松地添加和设计所有页面的链接。以下是完整的路由列表。

正在收集哪些信息

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

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

手动获取和显示统计信息

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

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

许可证

这是一个开源软件,许可协议为 MIT 许可协议