limen / redenvelope
PHP库,用于流行的中国红包功能
v0.1.5
2017-04-05 05:51 UTC
Requires
- php: >=5.4
- limen/redmodel: >=0.1.2
Requires (Dev)
- phpunit/phpunit: ~4.8
This package is not auto-updated.
Last update: 2024-09-29 02:13:30 UTC
README
功能
- 金额分配是随机的。
- 每个分配的最小值可设置。
- 金额精度可设置。
- 可设置方差因子,这将影响分配序列的方差。
安装
建议通过composer安装。
composer require "limen/redenvelope"
使用
use Limen\RedEnvelope\Envelope; $id = '123'; // unique id $remain = 212.23; // envelope remain amount $dividend = 10; // how many fragments to divide amount into $minAssignment = 10.1; // minimum value of each assignment $precision = 2; // assignment precision $varianceFactor = 1.0; // Appropriate value should between 0.5 and 1.5, 1.0 may be the best. // The greater this value, the greater the variance of the divided sequence is. $envelope = new Envelope($id); $envelope->setRemain($remain) ->setDividend($dividend); ->setPrecision($precision) ->setMinAssignment($minAssignment) ->setVarianceFactor($varianceFactor); $assignment = $envelope->open();
开发
测试
$ phpunit --bootstrap tests/bootstrap.php tests/
PHPUnit 5.7.15 by Sebastian Bergmann and contributors.
..
Total amount: 214.4
Dividend: 20
Minimum Assignment: 0.86
Variance factor: 0.7
Precision: 2
Assignment value: 10.72
..
Total amount: 64
Dividend: 4
Minimum Assignment: 7
Variance factor: 1.5
Precision: 0
Assignments:
No.0: 19.000000
No.1: 15.000000
No.2: 7.000000
No.3: 23.000000
. 5 / 5 (100%)
Time: 165 ms, Memory: 13.25MB
OK (5 tests, 36 assertions)