mssayari / laravel-visitor-statistics
Laravel 5 的访客追踪和统计
Requires
- php: >=7.2
- doctrine/dbal: ^2.10
- guzzlehttp/guzzle: ~6.0
- illuminate/bus: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- illuminate/contracts: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- illuminate/database: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- illuminate/http: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- illuminate/queue: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- illuminate/support: 5.5.* | 5.6.* | 5.7.* | 5.8.*
- piwik/device-detector: ^3.9
Requires (Dev)
- orchestra/testbench: ^3.5 | ^3.6 | ^3.7 | ^3.8
- phpunit/phpunit: ^6.5 | ^7.0 | ^8.0
README
追踪认证和不认证的访客、登录尝试、Ajax 请求等。包括一个控制器以及一系列路由和视图来显示统计信息,以及一个帮助类来轻松获取统计信息(如果您想自己显示统计信息)。
安装 - 基础
- 使用 composer 安装包
composer require mssayari/laravel-visitor-statistics
- 通过执行以下命令来运行迁移以安装包的表格来记录访问
php artisan migrate
- 将中间件添加到
app/Http/Kernel.php
protected $middlewareGroups = [ ... 'web' => [ ... \mssayari\Laravel\VisitorTracker\Middleware\RecordVisits::class, ], ... ];
- Laravel 5.5 有包自动发现。如果您使用的是旧版本,请在
config/app.php中注册服务提供者
... 'providers' => [ ... mssayari\Laravel\VisitorTracker\VisitorTrackerServiceProvider::class, ... ], ...
如果您想自己获取和显示访客统计信息,请在同一文件中注册外观
... 'aliases' => [ ... 'VisitStats' => mssayari\Laravel\VisitorTracker\Facades\VisitStats::class, ... ], ...
- 通过运行以下命令发布配置文件、资源和视图
php artisan vendor:publish
在提供的列表中选择 mssayari\Laravel\VisitorTracker\VisitorTrackerServiceProvider
安装 - Geoapi
追踪器使用外部 API 获取地理位置数据。要将 geoapi 关闭,请将配置文件中的 geoip_on 设置为 false。要更改提供程序,请更改 geoip_driver 字段。支持的字段在配置文件中列出。您可能需要根据所选择的提供程序填写额外的 API 密钥。
由于从外部 API 获取数据需要时间,因此该操作被排队并异步执行。这是通过 Laravel Jobs 实现的,可能在共享主机上无法正常工作。支持多种驱动。我们将描述如何设置数据库驱动程序。
首先,在您的 .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 解析用户代理。
手动获取和显示统计数据
如果您对提供的视图不满意,可以使用 mssayari\Laravel\VisitorTracker\Facades\VisitStats 类来获取统计数据,然后创建自己的控制器和视图来显示这些数据。
查看位于 src/Controllers/StatisticsController.php 的控制器,了解如何使用该类,它相当简单。原始类位于 src/VisitStats.php,其中所有方法都有文档说明,以便您需要更多深入了解。
许可证
这是一个开源软件,根据 MIT 许可证 许可。