tatter/访问

为 CodeIgniter 4 提供轻量级流量跟踪

v2.0.0 2024-02-03 22:42 UTC

README

为 CodeIgniter 4 提供轻量级流量跟踪

Coverage Status

快速开始

  1. 使用 Composer 安装: > composer require tatter/visits
  2. 更新数据库: > php spark migrate --all
  3. app/Config/Filters.php 中应用 visits 过滤器
class Filters extends BaseConfig
{
    public $globals = [
        'after' => ['visits'],
    ];
...

功能

为 CodeIgniter 4 提供自动化的流量跟踪

安装

通过 Composer 轻松安装以利用 CodeIgniter 4 的自动加载功能并保持最新状态

> composer require tatter/visits

或者,通过下载源文件并将其添加到 app/Config/Autoload.php 中来手动安装。

下载文件并包含在自动加载中后,运行任何库迁移以确保数据库正确设置

> php spark migrate --all

配置(可选)

可以通过扩展配置文件来更改库的默认行为。将 examples/Visits.php 复制到 app/Config/ 中,并按照注释中的说明进行操作。如果在 app/Config/ 中找不到配置文件,库将使用其自己的配置。

自定义

配置文件允许对哪些被计算为“点击”进行一些基本控制。

  • $ignoreAjax:在记录时是否忽略 AJAX 请求

通过 AJAX 请求进行过滤不是保证的商业模式;更多信息请参阅用户指南

如果您使用的是 after 过滤方法,也可以根据应用程序的 Response 实例调整一些行为

  • $ignoreRedirects:是否忽略导致重定向响应的请求
  • $requireBody:是否忽略导致空体的请求
  • $requireHtml:是否忽略内容类型不是 HTML 的请求

使用方法

此库的主要功能通过 控制器过滤器 应用。已为您预先将 VisitsFilter 别名为 visits,但需要将其应用于您想跟踪的任何路由。有关更多详细信息,请参阅用户指南,但在大多数情况下,全局应用过滤器将是最佳选择。

// app/Config/Filters.php

class Filters extends BaseConfig
{
    public $globals = [
        'before' => [
            'csrf',
        ],
        'after' => [
            'visits',
        ],
    ];

    // ...
}

过滤器可以应用于 beforeafter 方法,以下为预期结果:

  • before 过滤可能记录更多细微的流量(例如,在发生错误之前加载的页面),但它们更少可自定义
  • after 过滤允许更精确地控制什么被视为“点击”,但可能会错过 before 捕获的一些实例

同时应用 beforeafter 将会重复流量信息,不应这样做。

访问数据

此库提供 VisitModelVisit 实体以方便地访问记录条目。您可以根据需要扩展这些类。

转换器

在对访问评估和记录之前,访问可能经过任意数量的转换。转换器是一个实现 Tatter\Visits\Interfaces\Transformer 的类,它有一个静态方法来应用转换。

public static function transform(Visit $visit, IncomingRequest $request): ?Visit;

变压器作用于它们接收到的Visit类,并返回修改后的Visit实例或null以指示“不记录此次访问”并终止操作。如果返回了修改后的Visit,它将被传递到下一个变压器,依此类推。

要激活变压器并设置它们的顺序,只需将它们添加到配置文件的$transformers属性中。

use App\Transformers\AnonymousTransformer;

class Visits extends BaseConfig
{
    public array $transformers = [
        AnonymousTransformer::class,
    ];
}

用户跟踪

访问将使用任何提供codeigniter4/authentication-implementation的Composer包来识别活跃用户。在所有情况下跟踪用户流量都是非法的,也不建议这样做,因此请确保您的项目符合当地法律和法规。通过变压器进行过滤和匿名化数据可以实现更严格的规定。