innocraft/php-experiments

PHP Experiments 是一个库,允许您运行 A/B 和拆分测试

1.0.3 2024-04-08 11:19 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:09:41 UTC


README

代码状态

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version License

简介

PHP Experiments 是为 Matomo Analytics 的 A/B 和拆分测试 构建的,但可以用于任何 PHP 项目。 Matomo(前称 Piwik) 是一个领先的开放式网络分析平台,被超过 150 个国家的 100 多万个网站和应用使用。 InnoCraft 是 Matomo Analytics 制造商的公司。

特性

  • 轻松创建和运行 A/B 测试和拆分测试。
  • 实验流量分配:例如,配置只有 80% 的所有用户应参与实验。
  • 变体流量分配:例如,为某些特定的变体分配更多流量,为其他变体分配较少的流量。
  • 当用户首次进入实验时,将随机选择一个变体。在所有后续请求中,将激活相同的变体。
  • 可以强制选择特定的变体而不是随机选择。
  • 为了确保用户总是看到相同的变体,激活的变体名称存储在 cookie 中,可以配置自定义存储。
  • 使用纯数组轻松使用,易于扩展和自定义(可以定义自定义存储、过滤器变体)。
  • 通过单元测试进行测试。
  • 无依赖项,轻量级,简单。

示例

请参阅 示例目录 以获取各种示例。

运行 A/B 测试可能像这样简单

$variations = [['name' => 'green'], ['name' => 'blue']];
$experiment = new Experiment('experimentName', $variations);
$activated = $experiment->getActivatedVariation();

echo $activated->getName();

运行拆分 URL 测试可能像这样简单

$variations = [
    ['name' => 'layout1', 'url' => '/layout1'], 
    ['name' => 'layout2', 'url' => '/layout2']
];
$experiment = new Experiment('experimentName', $variations);
$activated = $experiment->getActivatedVariation();

// redirects to either URL or does nothing if the original version was activated
$activated->run();

要求

  • PHP 5.5.9 或更高版本

安装

要获取最新版本,请使用 Composer 引入库

$ composer require innocraft/php-experiments

或者,您可以选择手动更新 require 块并运行 composer update

{
    "require": {
        "innocraft/php-experiments": "^1.0"
    }
}

许可证

PHP Experiments 在 LGPL v3 许可下发布,请参阅 LICENSE

开发者

生成文档

要更新 docs 目录中的文档,请执行以下命令

  • cd docs
  • composer install(仅需要一次)
  • ./generateDocs.sh