![Latest Stable Version][latest stable version]
![Total Downloads][total downloads]
![Scrutinizer code quality][code quality]
![Type Coverage][type coverage]
![Code Coverage][code coverage]
![Donate!][donate github]
, (*1)
YAROC
Yet Another Random.Org Client., (*2)
YAROC fully supports V1 and V2 API., (*3)
Most of the classes of this library are stateless and immutable., (*4)
Requirements
Installation
composer require drupol/yaroc
YAROC needs an HTTP client in order to work, do, (*5)
composer require symfony/http-client
or provide one., (*6)
Usage
First request an API Key or use the temporary key., (*7)
The temporary API key used in the examples will be disabled when the beta ends., (*8)
You can call any API methods described in the documentation from Random.org., (*9)
Currently support all the Random.org API method calls in the basic and signed APIs., (*10)
Examples
<?php
require 'vendor/autoload.php';
use drupol\Yaroc\Plugin\Provider;
use drupol\Yaroc\RandomOrgAPI;
$generateIntegers = (new Provider())->withResource('generateIntegers')
->withParameters(['n' => 10, 'min' => 0, 'max' => 100]);
$result = (new RandomOrgAPI())
->withApiKey('00000000-0000-0000-0000-000000000000')
->getData($generateIntegers);
print_r($result);
$provider = (new Provider())->withResource('generateStrings')
->withParameters([
'n' => 10,
'length' => 15,
'characters' => implode(array_merge(range('A', 'Z'), range('a', 'z'), range(0, 9))),
]);
$result = (new RandomOrgAPI(null, ['apiKey' => '00000000-0000-0000-0000-000000000000']))->getData($provider);
print_r($result);
Providing the API key can be accomplished using an environment variable RANDOM_ORG_APIKEY or by using the method proper
parameters in the RandomOrgAPI constructor, or by using (new RandomOrgAPI())->withApiKey(string $apiKey)., (*11)
Third party libraries integration
ircmaxell/RandomLib integration
YAROC provides a Source for ircmaxell/RandomLib., (*12)
<?php
require 'vendor/autoload.php';
use drupol\Yaroc\RandomOrgAPI;
use drupol\Yaroc\Plugin\RandomLib\Source\RandomOrg;
$randomOrgApi = new RandomOrgAPI();
$randomLib = new RandomLib\Factory();
$generator = $randomLib->getGenerator(new SecurityLib\Strength(SecurityLib\Strength::HIGH))
->addSource(new RandomOrg($randomOrgApi));
$randomString = $generator->generateString(10);
echo $randomString;
rchouinard/rych-random integration
YAROC provides a Generator for rchouinard/rych-random., (*13)
<?php
require 'vendor/autoload.php';
use drupol\Yaroc\RandomOrgAPI;
use drupol\Yaroc\Plugin\RychRandom\Generator\RandomOrg;
$randomOrgApi = new RandomOrgAPI();
$rychRandom = new Rych\Random\Random(new RandomOrg($randomOrgApi));
$randomString = $rychRandom->getRandomString(8);
echo $randomString;
History
I discovered the Random.Org the 22 November 2016, by chance and I found the idea amazing., (*14)
I had the idea to build a library that would be following the best development practice and up to date., (*15)
Feel free to contact me at: pol.dellaiera@protonmail.com, (*16)
Code quality, tests and benchmarks
To run the tests, run this command:, (*17)
RANDOM_ORG_APIKEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx composer grumphp
Every time changes are introduced into the library, Travis CI run the tests and the benchmarks., (*18)
The library has tests written with PHPSpec.
Feel free to check them out in the spec directory. Run composer phpspec to trigger the tests., (*19)
Before each commit some inspections are executed with GrumPHP, run ./vendor/bin/grumphp run to check manually., (*20)
PHPInfection is used to ensure that your code is properly tested, run composer infection to test your code., (*21)
Contributing
Feel free to contribute by sending Github pull requests. I'm quite reactive :-), (*22)
If you can't contribute to the code, you can also sponsor me on Github or Paypal., (*23)
Changelog
See CHANGELOG.md for a changelog based on git commits., (*24)