kenarkose/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.
README
Laravel 5 的简单站点访问/统计跟踪器。
Tracker 提供了一种简单的方式来跟踪您的网站访问及其统计信息。
功能
- 兼容 Laravel 5
- 自动记录网站视图的中间件
- 将网站视图关联到 Eloquent 模型以跟踪其视图
- 基于 URL、方法和 IP 地址持久化唯一视图
- 辅助方法、外观和特性,便于访问服务
- 方便的 'Cruncher' 用于数字处理需求
- 根据给定的时间段刷新和选择网站视图
- 一个用于轻松开发的 phpunit 测试套件
安装
安装 Tracker 很简单。
-
通过 Composer 安装此包。
{ "require": { "kenarkose/tracker": "~1.6" } } -
为了注册 Tracker 服务提供程序,将
'Kenarkose\Tracker\TrackerServiceProvider'添加到您的config/app.php文件中providers数组的末尾。'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', ... 'Kenarkose\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' => 'Kenarkose\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' => \Kenarkose\Tracker\TrackerMiddleware::class ];
最好将此中间件注册为路由中间件而不是全局中间件,并在路由或路由组定义中使用它,因为可能不需要持久化所有网站视图。这将自动将添加到堆栈中的任何可跟踪对象与网站视图一起持久化,当请求被 Laravel 处理时。
-
为了将视图附加到任何模型或类,您应该实现
Kenarkose\Tracker\TrackableInterface接口。Tracker 提供了Kenarkose\Tracker\Trackable特性,用于 Eloquent 模型。use Illuminate\Database\Eloquent\Model as Eloquent; use Kenarkose\Tracker\Trackable; use Kenarkose\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'); } }
-
请检查
Kenarkose\Tracker\Cruncher类并测试统计数据处理。它配备了用于不同时间段内不同类型统计(主要是计数)的多种方法。
请检查测试和源代码以获取更多文档,因为 Tracker 的源代码经过良好测试和记录。
许可证
Tracker 在 MIT 许可证 下发布。