tatter / 访问
为 CodeIgniter 4 提供轻量级流量跟踪
支持包维护!
tattersoftware
paypal.me/tatter
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- codeigniter4/framework: ^4.2
- kint-php/kint: ^5.1
- tatter/imposter: ^1.0
- tatter/tools: ^2.0
Suggests
- codeigniter4/authentication-implementation: Required to track authenticated users.
This package is auto-updated.
Last update: 2024-09-03 23:55:49 UTC
README
为 CodeIgniter 4 提供轻量级流量跟踪
快速开始
- 使用 Composer 安装:
> composer require tatter/visits
- 更新数据库:
> php spark migrate --all
- 在 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', ], ]; // ... }
过滤器可以应用于 before
或 after
方法,以下为预期结果:
before
过滤可能记录更多细微的流量(例如,在发生错误之前加载的页面),但它们更少可自定义after
过滤允许更精确地控制什么被视为“点击”,但可能会错过before
捕获的一些实例
同时应用 before
和 after
将会重复流量信息,不应这样做。
访问数据
此库提供 VisitModel
和 Visit
实体以方便地访问记录条目。您可以根据需要扩展这些类。
转换器
在对访问评估和记录之前,访问可能经过任意数量的转换。转换器是一个实现 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包来识别活跃用户。在所有情况下跟踪用户流量都是非法的,也不建议这样做,因此请确保您的项目符合当地法律和法规。通过变压器进行过滤和匿名化数据可以实现更严格的规定。