====== Random ======
**Layer:** ''Core'' · **Source:** ''lib/core/Random.php:17'' (lines 17–293)
----
class Random
Random Class
======= Docblock Metadata =======
^ Tag ^ Value ^
| ''@category'' | Core Class |
| ''@author'' | Anthony Ferrara me@ircmaxell.com |
| ''@see'' | https://github.com/ircmaxell/random_compat |
| ''@see'' | https://timoh6.github.io/2013/11/05/Secure-random-numbers-for-PHP-developers.html |
======= Inheritance =======
//No parent, interface or trait. This is a root type.//
======= Constants (5) =======
^ Visibility ^ Name ^ Value ^ Line ^
| ''-'' | ''BLOCK_SIZE'' | ''32;'' | 19 |
| ''-'' | ''TOKEN_LOWER_ALPHA'' | ''"abcdefghijklmnopqrstuvwxyz";'' | 21 |
| ''-'' | ''TOKEN_UPPER_ALPHA'' | ''"ABCDEFGHIJKLMNOPQRSTUVWXYZ";'' | 22 |
| ''-'' | ''TOKEN_ALPHA'' | ''"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";'' | 23 |
| ''-'' | ''TOKEN_ALNUM'' | ''"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";'' | 24 |
======= Properties (2) =======
^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''private static'' | ''static'' | ''$state'' | '''''' | 26 |
| ''protected'' | ''(untyped)'' | ''$secure'' | ''false'' | 28 |
======= Methods (12) =======
^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''__construct()'' | Construct a new random number generator | 35 |
| public | ''bytes()'' | Generate a native binary string | 47 |
| public | ''int()'' | Generate a random integer | 66 |
| public | ''float()'' | Generate a random floating point number between 0 and 1.0 | 94 |
| public | ''choose()'' | Given a sequence (string, array or object), pick one of them at random | 106 |
| public | ''shuffle()'' | Given a sequence(string, array or object), generate a shuffled sequence | 134 |
| public | ''token()'' | Generate a token with the specified alphabet | 178 |
| protected | ''genRandom()'' | Protected function to overload the generator for unit testing purposes | 201 |
| private | ''genNormal()'' | Generate a non-CS random seed | 214 |
| private | ''genSecure()'' | Generate a cryptographically-secure random seed | 242 |
| private | ''mergeBuffers()'' | Merge two buffers into a single buffer in a non-deterministic way | 273 |
| private | ''countBits()'' | Count the number of bits needed to represent an integer | 285 |
======== __construct() ========
public function __construct($secure = false)
//lines 35–38 (4)//
Construct a new random number generator
^ Parameter ^ Type ^ Default ^ Description ^
| ''$secure'' | ''(untyped)'' | ''false'' | Should generated random numbers be cryptographically secure |
======== bytes() ========
public function bytes($length)
//lines 47–56 (10)//
Generate a native binary string
^ Parameter ^ Type ^ Default ^ Description ^
| ''$length'' | ''(untyped)'' | //required// | The length of the string to generate |
**Returns:** ''(none declared)'' — string The generated string
======== int() ========
public function int($min, $max = null)
//lines 66–87 (22)//
Generate a random integer
^ Parameter ^ Type ^ Default ^ Description ^
| ''$min'' | ''(untyped)'' | //required// | The starting point, or if max is omitted the ending point |
| ''$max'' | ''(untyped)'' | ''null'' | The ending point |
**Returns:** ''(none declared)'' — int The generated integer
======== float() ========
public function float()
//lines 94–97 (4)//
Generate a random floating point number between 0 and 1.0
//Takes no parameters.//
**Returns:** ''(none declared)'' — float The generated float
======== choose() ========
public function choose($value)
//lines 106–124 (19)//
Given a sequence (string, array or object), pick one of them at random
^ Parameter ^ Type ^ Default ^ Description ^
| ''$value'' | ''(untyped)'' | //required// | The sequence to choose from |
**Returns:** ''(none declared)'' — mixed The randomly chosen value
======== shuffle() ========
public function shuffle($value)
//lines 134–168 (35)//
Given a sequence(string, array or object), generate a shuffled sequence
Note: for strings, the return is a string. For arrays and objects, it's an array
^ Parameter ^ Type ^ Default ^ Description ^
| ''$value'' | ''(untyped)'' | //required// | The sequence to choose from |
**Returns:** ''(none declared)'' — string|array The generated shuffled sequence
======== token() ========
public function token($length, $alphabet = self::TOKEN_ALNUM)
//lines 178–196 (19)//
Generate a token with the specified alphabet
^ Parameter ^ Type ^ Default ^ Description ^
| ''$length'' | ''(untyped)'' | //required// | The length of the token to generate |
| ''$alphabet'' | ''(untyped)'' | ''self::TOKEN_ALNUM'' | The "alphabet" (characters) to use |
**Returns:** ''(none declared)'' — string The generated random token
======== genRandom() ========
protected function genRandom()
//lines 201–209 (9)//
Protected function to overload the generator for unit testing purposes
//Takes no parameters.//
**Returns:** ''(none declared)''
======== genNormal() ========
private function genNormal()
//lines 214–237 (24)//
Generate a non-CS random seed
//Takes no parameters.//
**Returns:** ''(none declared)''
======== genSecure() ========
private function genSecure()
//lines 242–268 (27)//
Generate a cryptographically-secure random seed
//Takes no parameters.//
**Returns:** ''(none declared)''
======== mergeBuffers() ========
private function mergeBuffers($buffer1, $buffer2)
//lines 273–280 (8)//
Merge two buffers into a single buffer in a non-deterministic way
^ Parameter ^ Type ^ Default ^ Description ^
| ''$buffer1'' | ''(untyped)'' | //required// | //none// |
| ''$buffer2'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
======== countBits() ========
private function countBits($number)
//lines 285–292 (8)//
Count the number of bits needed to represent an integer
^ Parameter ^ Type ^ Default ^ Description ^
| ''$number'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)''
----
//This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//