graymatterlabs/experiment

v0.3 2023-05-29 22:41 UTC

README

Latest Version on Packagist Tests Total Downloads

此包对您存储实验数据的方式没有意见。请提供自己的 GrayMatterLabs\Experiment\Contracts\Persistence 实现,或者使用提供的实现之一。

您选择如何实现 GrayMatterLabs\Experiment\Contracts\Factory 将决定您如何在代码中引用实验。默认情况下,提供了一个实现,通过完全限定类名引用实验。

同样,您可以选择并且鼓励以动态和/或数据支持的方式配置您的实验,通过用来自任意数量存储机制的任何数据以及您认为合适的任何形状来实例化它们。

一般来说,此包尽可能不强制执行意见,而是提供一个开放式框架,用于 A/B 测试,以最大限度地减少复杂性和开销。鼓励您提供提供的接口的具体实现。然而,您也可以利用您提供的实现。

安装

您可以通过 composer 安装此包

composer require graymatterlabs/experiment:^0.3

使用

$manager = new Manager($persistence, $factory, $strategy);
$sample = new Sample();

$allocation = $manager->allocate($experiment, $sample);

if (! $allocation->isAllocated()) {
    // unable to allocate
}

if ($allocation->isVariant('TEST')) {
    // execute experimental feature
}

if ($allocation->wasRecentlyAllocated) {
    // the allocation is new
}

注意:使用 GrayMatterLabs\Experiment\Persistence\SimpleCachePersistence 需要满足 Psr\SimpleCache\CacheInterface 接口。请参阅 graymatterlabs/simple-cache 或提供自己的实现。

测试

composer test

变更日志

请参阅发布说明以获取有关最近更改的更多信息。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件