GitHub - antonioribeiro/random: Generate random strings or numeric values
source link: https://github.com/antonioribeiro/random
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Random
Generate random strings, numbers, bytes, patterns, and a lot more
Features
It generates cryptographically secure pseudo-random bytes (using random_bytes()
and random_int()
) to make:
- Strings
- Numbers (strings or integers)
- Upper, lower and mixed case
- Prefixed and suffixed random strings
- Hexadecimal
- Regex patterns ([abcd], [aeiou], [A-Z0123], [0-9a-f])
- Raw strings, giving you whatever
random_bytes()
generates
Faker
If you have Faker installed it falls back to it, giving you access to random names, dates, cities, phones, and a lot more.
Install
Via Composer
$ composer require pragmarx/random
Usage
Basic array usage
$this->random = new PragmaRX\Random\Random();
$this->random->get(); /// will generate an alpha string which is the same of
$this->random->alpha()->get();
Should give you 16 chars (default size) string
Ajv3ejknLmqwC36z
Defining the size
$this->random->size(32)->get();
Upper and lower case
$this->random->uppercase()->get();
$this->random->lowercase()->size(255)->get();
To get back to mixed case you can just:
$this->random->mixedcase()->get();
Defining a pattern
The pattern method uses regex, so you can:
$this->random->pattern('[abcd]')->get();
$this->random->pattern('[A-F0-9]')->get(); /// Hexadecimal
To get
abcddcbabbacbbdabbcb
Numeric and Integer
The pattern method uses regex, so you can:
$this->random->numeric()->start(10)->end(20)->get();
To get
(int) 18
But if you set the size
$this->random->numeric()->size(3)->get();
You'll get a string
(string) 123
Hexadecimal
$this->random->hex()->size(10)->get();
Hexadecimal is uppercase by default, but you can get a lowercase by doing:
$this->random->hex()->lowercase()->get();
Prefix && Suffix
$this->random->hex()->prefix('#')->size(6)->lowercase()->get();
And you should get a random CSS color:
#fafafa
Of course, the same works for suffixes
$this->random->prefix('!')->suffix('@')->get();
Trivia
There are currently 43982 questions in the trivia database, and this is how you get them:
$this->random->trivia()->get();
$this->random->trivia()->count(2)->get();
You'll need to install the Trivia database package:
$ composer require pragmarx/trivia
Faker
If you install Faker
composer require fzaninotto/faker
You'll also have access to all of the Faker features, like:
$this->random->city()->get();
And also use all other features of Random
$this->random->prefix('city: ')->city()->lowercase()->get();
You can also change the faker class, you another one pleases you more:
$this->random->fakerClass(AnotherFaker\Factory::class)->date()->get();
Raw strings
Usually the package returns characters in the range of Base64 (A to Z, a to z and 0 to 9), but you can completely disable this feature and make it return whatever random_bytes()
generates:
$this->random->raw()->get();
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer update
$ vendor/bin/phpunit
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK