tkjn/phprandom

There is no license information available for the latest version (v2.0.0) of this package.

Random data generation

v2.0.0 2017-02-21 18:26 UTC

This package is not auto-updated.

Last update: 2024-04-22 14:02:49 UTC


README

Build Status

The purposes of this library are:

  • Provide a self-contained seeded number generator object, which doesn't rely on global state for the seed
  • Define interfaces for random data generation that can be type-hinted and are easy to mock when unit testing.

Installation

Require tkjn/phprandom in composer.json

Usage

$random = new \Tkjn\Random\Integer\XorshiftStar();

// Generate random value between 10 and 100 (inclusive)
$randomNumber = $random->rand(10, 100);

Multiple instances will maintain their own seed unlike the built-in php rand() and mt_rand() which are seeded globally

$random1 = new \Tkjn\Random\Integer\XorshiftStar(123);
$random2 = new \Tkjn\Random\Integer\XorshiftStar(123);
$random3 = new \Tkjn\Random\Integer\XorshiftStar(85874);

var_dump($random1->rand(10, 90));
var_dump($random2->rand(10, 90));
var_dump($random3->rand(10, 90));

var_dump($random1->rand(10, 90));
var_dump($random2->rand(10, 90));
var_dump($random3->rand(10, 90));

Results in

int(59)
int(59)
int(13)

int(84)
int(84)
int(15)