121

GitHub - antonioribeiro/random: Generate random strings or numeric values

 6 years ago
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.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK