phpab / analytics-pdo
使用 PDO DBAL 存储PhpAb测试参与情况。
dev-master
2016-05-02 21:06 UTC
Requires
- php: ~5.5|~7.0
- ext-pdo: *
- phpab/phpab: dev-master
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: ^2.5
Suggests
- ext-mysql: Required module to store tests in MySql server
- ext-pgsql: Required module to store tests in PostgreSQL servers
- ext-sqlite3: Required module to store tests in sqlite3 databases
This package is not auto-updated.
Last update: 2024-09-14 18:09:50 UTC
README
使用 PhpAb 通过 PDO DBAL 存储测试参与情况。
安装
通过 Composer
$ composer require phpab/analytics-pdo
请确保已安装您打算使用的 PDO 驱动程序。
使用方法
此示例假设您在同一文件夹中创建了 sqlite3 数据库,该数据库与脚本位于同一位置。sqlite3 定义可以在以下链接中找到:这里。
use PhpAb\Storage\Cookie; use PhpAb\Participation\Manager; use PhpAb\Analytics\DataCollector\Generic; use PhpAb\Event\Dispatcher; use PhpAb\Participation\Filter\Percentage; use PhpAb\Variant\Chooser\RandomChooser; use PhpAb\Engine\Engine; use PhpAb\Test\Test; use PhpAb\Variant\SimpleVariant; use PhpAb\Variant\CallbackVariant; $storage = new Cookie('phpab'); $manager = new Manager($storage); $analyticsData = new Generic(); $dispatcher = new Dispatcher(); $dispatcher->addSubscriber($analyticsData); $filter = new Percentage(50); $chooser = new RandomChooser(); $engine = new Engine($manager, $dispatcher, $filter, $chooser); $test = new Test('foo_test'); $test->addVariant(new SimpleVariant('_control')); $test->addVariant(new CallbackVariant('v1', function () { echo 'v1'; })); $test->addVariant(new CallbackVariant('v2', function () { echo 'v2'; })); $test->addVariant(new CallbackVariant('v3', function () { echo 'v3'; })); // Add some tests $engine->addTest($test); $engine->start(); // Here starts PDO interaction $pdo = new PDO('sqlite:./phpab.db'); $options = [ 'runTable' => 'Run', 'testIdentifierField' => 'testIdentifier', 'variantIdentifierField' => 'variantIdentifier', 'userIdentifierField' => 'userIdentifier', 'scenarioIdentifierField' => 'scenarioIdentifier', 'runIdentifierField' => 'runIdentifier', 'createdAtField' => 'createdAt' ]; // Inject PDO instance together with Analytics Data $analytics = new \PhpAb\Analytics\PDO( $analyticsData->getTestsData(), $pdo, $options ); // Store it providing a user identifier and a scenario // typically a URL or a controller name $analytics->store('1.2.3.4-abc', 'homepage.php');
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CONDUCT 以获取详细信息。
安全性
如果您发现任何安全相关的问题,请在问题跟踪器中打开一个问题。我们认识到这并非理想,但这是解决问题最快的方式。
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。