定制 danhanly/scientist-utility-matcher 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

danhanly/scientist-utility-matcher

Composer 安装命令:

composer require danhanly/scientist-utility-matcher

包简介

Utility Matchers for Scientist

README 文档

README

Scientist

Scientist Utility Matchers

Packagist Version Packagist

Simple type, utility matchers for use with the Scientist Library

1. Installation

Require the latest version of Scientist Symfony using Composer.

composer require danhanly/scientist-utility-matcher

2. Matchers

There are a number of simple matchers packaged within this project, for use with your experiments.

2.1 ObjectPropertyMatcher

This allows you to match specific properties on objects returned with the control and trial processes.

When initialising the matcher, you can configure it to either match against a single property (via string), or multiple properties (via array)

// initialise matcher
$matcher = new \DanHanly\Scientist\UtilityMatchers\ObjectPropertyMatcher;
// define property via string
$matcher->setProperties('propertyName');
// or via array
$matcher->setProperties(['propertyName', 'anotherPropertyName']);

You can also set properties directly via the matcher constructor.

// define property via string
$matcher = new \DanHanly\Scientist\UtilityMatchers\ObjectPropertyMatcher('propertyName');
// or via array
$matcher = new \DanHanly\Scientist\UtilityMatchers\ObjectPropertyMatcher(['propertyName', 'anotherPropertyName']);

2.2 ArrayKeyMatcher

This allows you to match specific keys on arrays returned with the control and trial processes.

2.2.1 Simple Key Matching

When initialising the matcher, you can configure it to either match against a single key (via string), or multiple keys (via array)

// initialise matcher
$matcher = new \DanHanly\Scientist\UtilityMatchers\ArrayKeyMatcher;
// define keys via string
$matcher->setKeys('keyName');
// or via array
$matcher->setKeys(['keyName', 'anotherKeyName']);

You can also set keys directly via the matcher constructor.

// define key via string
$matcher = new \DanHanly\Scientist\UtilityMatchers\ArrayKeyMatcher('keyName');
// or via array
$matcher = new \DanHanly\Scientist\UtilityMatchers\ArrayKeyMatcher(['keyName', 'anotherKeyName']);

2.2.2 Deep Key Matching

Array deep key matching can be done with the -> delimiter.

Say for example you wanted to match the zip code of an address, but the address is stored in $array['data']['user']['address']['zip'], your matching notation would be data->user->address->zip

// define key via string
$matcher = new \DanHanly\Scientist\UtilityMatchers\ArrayKeyMatcher('data->user->address->zip');

2.3 MinMaxMatcher

This allows you to ensure that both the trial values and the control values are within a predefined threshold.

When initialising the matcher, you can configure it to match only those that are greater than a minimum value, those that are less than a maximum value, or a combination of both.

The first parameter is the minimum value, the second parameter is the maximum value.

// intialise with a 0 minimum
$matcher = new \DanHanly\Scientist\UtilityMatchers\MinMaxMatcher(0);
// intialise with a 10 maximum
$matcher = new \DanHanly\Scientist\UtilityMatchers\MinMaxMatcher(null, 10);
// intialise between 0 and 10
$matcher = new \DanHanly\Scientist\UtilityMatchers\MinMaxMatcher(0, 10);

3. Usage

Once you've initialised and configured your matcher, you can use it within your experiments.

$experiment = (new Scientist\Laboratory)
  ->experiment('experiment title')
  ->control($controlCallback)
  ->trial('trial name', $trialCallback)
  ->matcher($matcher);

统计信息

  • 总下载量: 52
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-02-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固