kenarkosetracker

该包已被废弃,不再维护。未建议替代包。

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

1.6.3 2016-10-05 14:54 UTC

README

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

Build Status Total Downloads Latest Stable Version License

Tracker 提供了一种简单的方式来跟踪您的网站访问及其统计信息。

功能

  • 兼容 Laravel 5
  • 自动记录网站视图的中间件
  • 将网站视图关联到 Eloquent 模型以跟踪其视图
  • 基于 URL、方法和 IP 地址持久化唯一视图
  • 辅助方法、外观和特性,便于访问服务
  • 方便的 'Cruncher' 用于数字处理需求
  • 根据给定的时间段刷新和选择网站视图
  • 一个用于轻松开发的 phpunit 测试套件

安装

安装 Tracker 很简单。

  1. 通过 Composer 安装此包。

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

    'providers' => array(
    
        'Illuminate\Foundation\Providers\ArtisanServiceProvider',
        'Illuminate\Auth\AuthServiceProvider',
        ...
        'Kenarkose\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'   => 'Kenarkose\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' => \Kenarkose\Tracker\TrackerMiddleware::class
    ];

    最好将此中间件注册为路由中间件而不是全局中间件,并在路由或路由组定义中使用它,因为可能不需要持久化所有网站视图。这将自动将添加到堆栈中的任何可跟踪对象与网站视图一起持久化,当请求被 Laravel 处理时。

  7. 为了将视图附加到任何模型或类,您应该实现 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');
            }
        }
    
  8. 请检查 Kenarkose\Tracker\Cruncher 类并测试统计数据处理。它配备了用于不同时间段内不同类型统计(主要是计数)的多种方法。

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

许可证

Tracker 在 MIT 许可证 下发布。