Generate and Extract Random Data with RandoPHP

Packages

October 22nd, 2020

sequence-featured.png

RandoPHP is a package by Roberto Butti that implements random generators (Integer, Char, Byte, etc.) and takes random samples from arrays. This package can be broken down into two distinct types of operations: generating things and drawing from existing arrays.

RandoPHP provides a fluent interface to generate integers, dates, floats, etc. to help you generate data:

// Generate char
Randomize::char()->numeric()->generate();
Randomize::char()->alpha()->generate();
Randomize::char()->alphanumeric()->generate();

// Generate a boolean (flip a coin)
Randomize::boolean()->generate();

// Generate floats and integers
$randomFloat = Randomize::float()->generate();
$randomFloat = Randomize::float()->min(0)->max(90)->generate();
$randomNumber = Randomize::integer()->min(1)->max(6)->generate();
$randomNumber = Randomize::integer()->range(1,6)->generate();

// Generate sequences (i.e. roll the dice 15 times)
$randomRolls = Randomize::sequence()
    ->min(1)
    ->max(6)
    ->count(15)
    ->generate();

// Generate a random sequence of 10 alpha-numeric chars
Randomize::sequence()
    ->chars()
    ->alphanumeric()
    ->count(10)
    ->generate();

Secondly, you can draw random stuff from existing arrays using the Draw class:

<br></br>$array=["React.js", "Vue.js", "Svelte.js", "Angular.js" , "Alpine.js", "Vanilla js"];

// Draw one
$randomJs = Draw::sample($array)->extract();

// Draw three
$randomJs = Draw::sample($array)->count(3)->extract();

// Draw three, duplicates allowed
$randomJs = Draw::sample($array)
    ->count(3)
    ->allowDuplicates()
    ->extract();

The examples in this article were taken from the project’s readme, which has full details on usage. You can view this package’s source code on GitHub at Hi-Folks/rando-php.


This package was submitted to our Laravel News Links section. Links is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter @LaravelLinks.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.