arrtrust/tracker

Laravel 5 简单的网站访问/统计跟踪器

1.6.3 2019-11-12 08:41 UTC

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 非常简单。

  1. 通过 Composer 引入此包。

    {
        "require": {
            "arrtrust/tracker": "~1.6"
        }
    }
  2. 为了注册 Tracker 服务提供者,请将 'Arrtrust\Tracker\TrackerServiceProvider' 添加到您的 config/app.php 文件中 providers 数组的末尾。

    'providers' => array(
    
        'Illuminate\Foundation\Providers\ArtisanServiceProvider',
        'Illuminate\Auth\AuthServiceProvider',
        ...
        'Arrtrust\Tracker\TrackerServiceProvider',
    
    ),
  3. 您可以通过以下命令发布并修改配置文件来配置 Tracker 的默认行为。

    php artisan vendor:publish

    然后,您将在 config/tracker.php 路径下找到配置文件。有关选项的信息可以在该文件的注释中找到。配置文件中的所有选项都是可选的,如果未指定,则回退到默认值;如果要使用默认值,请删除选项。

    这将还会发布默认 SiteView 模型的迁移文件。在使用 Tracker 之前,请务必迁移您的数据库。

  4. 为了注册外观,请在您的 config/app.php 文件中 aliases 数组的末尾添加以下行。

    'aliases' => array(
    
        'App'        => 'Illuminate\Support\Facades\App',
        'Artisan'    => 'Illuminate\Support\Facades\Artisan',
        ...
        'Tracker'   => 'Arrtrust\Tracker\TrackerFacade'
    
    ),
  5. 您现在可以通过外观或辅助函数访问 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());
  6. 使用提供的中间件记录视图非常重要,以记录正确的应用程序运行时和内存信息。为此,请在 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 处理请求后的网站访问持久化和附加。

  7. 要将视图附加到任何模型或类,您应该实现 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');
            }
        }
  8. 检查 Arrtrust\Tracker\Cruncher 类并对其进行统计数字处理测试。它配备了针对不同时间段和不同类型统计信息(主要是计数)的多种方法。

请检查测试和源代码以获取更多文档,因为 Tracker 的源代码经过了良好的测试和文档记录。

许可证

Tracker 在 MIT 许可证 下发布。