arrtrust / tracker
Laravel 5 简单的网站访问/统计跟踪器
Requires
- php: >=5.4.0
Requires (Dev)
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~4.0
Suggests
- laravel/framework: This package requires Laravel 5.
This package is auto-updated.
Last update: 2024-09-12 20:00:29 UTC
README
Laravel 5 简单的网站访问/统计跟踪器。
Tracker 提供了一种简单的方式来跟踪您的网站访问及其统计信息。
功能
- 兼容 Laravel 5
- 中间件,用于自动记录网站访问
- 将网站访问与 Eloquent 模型关联以跟踪其访问次数
- 根据 URL、方法和 IP 地址持久化唯一访问次数
- 辅助方法、外观和特质,便于访问服务
- 方便的 'Cruncher' 用于数字处理需求
- 根据给定的时间范围刷新和选择网站访问次数
- 一个用于轻松开发的 phpunit 测试套件
安装
安装 Tracker 非常简单。
-
通过 Composer 引入此包。
{ "require": { "arrtrust/tracker": "~1.6" } }
-
为了注册 Tracker 服务提供者,请将
'Arrtrust\Tracker\TrackerServiceProvider'
添加到您的config/app.php
文件中providers
数组的末尾。'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', ... 'Arrtrust\Tracker\TrackerServiceProvider', ),
-
您可以通过以下命令发布并修改配置文件来配置 Tracker 的默认行为。
php artisan vendor:publish
然后,您将在
config/tracker.php
路径下找到配置文件。有关选项的信息可以在该文件的注释中找到。配置文件中的所有选项都是可选的,如果未指定,则回退到默认值;如果要使用默认值,请删除选项。这将还会发布默认
SiteView
模型的迁移文件。在使用 Tracker 之前,请务必迁移您的数据库。 -
为了注册外观,请在您的
config/app.php
文件中aliases
数组的末尾添加以下行。'aliases' => array( 'App' => 'Illuminate\Support\Facades\App', 'Artisan' => 'Illuminate\Support\Facades\Artisan', ... 'Tracker' => 'Arrtrust\Tracker\TrackerFacade' ),
-
您现在可以通过外观或辅助函数访问 Tracker。
tracker()->getCurrent(); Tracker::saveCurrent(); tracker()->isViewUnique(); tracker()->isViewValid(); tracker()->addTrackable($post); Tracker::flushAll(); Tracker::flushOlderThan(Carbon::now()); Tracker::flushOlderThenOrBetween(Carbon::now(), Carbon::now()->subYear());
-
使用提供的中间件记录视图非常重要,以记录正确的应用程序运行时和内存信息。为此,请在
app\Http\Kernel
中注册中间件。protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'guard' => \App\Http\Middleware\Guard::class, 'track' => \Arrtrust\Tracker\TrackerMiddleware::class ];
最好将此中间件注册为路由中间件而不是全局中间件,并在路由或路由组定义中使用它,因为它可能没有必要持久化所有网站访问。这将自动将添加到堆栈中的任何 Trackable 与 Laravel 处理请求后的网站访问持久化和附加。
-
要将视图附加到任何模型或类,您应该实现
Arrtrust\Tracker\TrackableInterface
接口。Tracker 为 Eloquent 模型提供了Arrtrust\Tracker\Trackable
特质。use Illuminate\Database\Eloquent\Model as Eloquent; use Arrtrust\Tracker\Trackable; use Arrtrust\Tracker\TrackableInterface; class Node extends Eloquent implements TrackableInterface { use Trackable; }
Trackable
特质使用 Eloquent 的belongsToMany
关系,该关系利用了枢轴表。以下是枢轴表的示例迁移<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateNodeSiteViewPivotTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('node_site_view', function (Blueprint $table) { $table->integer('node_id')->unsigned(); $table->integer('site_view_id')->unsigned(); $table->foreign('node_id') ->references('id') ->on('nodes') ->onDelete('cascade'); $table->foreign('site_view_id') ->references('id') ->on('site_views') ->onDelete('cascade'); $table->primary(['node_id', 'site_view_id']); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('node_site_view'); } }
-
检查
Arrtrust\Tracker\Cruncher
类并对其进行统计数字处理测试。它配备了针对不同时间段和不同类型统计信息(主要是计数)的多种方法。
请检查测试和源代码以获取更多文档,因为 Tracker 的源代码经过了良好的测试和文档记录。
许可证
Tracker 在 MIT 许可证 下发布。