drupol/yaroc

YAROC: 另一个Random.Org客户端。

2.2.0 2021-04-07 20:06 UTC

README

Latest Stable Version GitHub stars Total Downloads GitHub Workflow Status Scrutinizer code quality Type Coverage Code Coverage License Donate! Donate!

YAROC

另一个Random.Org客户端。

YAROC完全支持V1V2API。

这个库的大部分类都是无状态的且不可变的。

要求

安装

composer require drupol/yaroc

YAROC需要一个HTTP客户端才能工作,可以

composer require symfony/http-client

或提供一个。

使用方法

首先请求一个API密钥或使用临时密钥。

示例中使用的临时API密钥将在测试版结束时被禁用。

您可以从Random.org调用文档中描述的任何API方法

目前支持Random.org基本签名API中的所有API方法调用。

示例

<?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);

可以通过使用环境变量RANDOM_ORG_APIKEY或通过在RandomOrgAPI构造函数中正确使用方法参数,或者通过使用(new RandomOrgAPI())->withApiKey(string $apiKey)来提供API密钥。

第三方库集成

ircmaxell/RandomLib集成

YAROC为ircmaxell/RandomLib提供了一个源。

<?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集成

YAROC为rchouinard/rych-random提供了一个生成器。

<?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;

历史

我在2016年11月22日偶然发现了Random.Org,我觉得这个想法非常棒。

我有了建立一个库的想法,这个库将遵循最佳的开发实践,并且是最新版本的。

请随时通过pol.dellaiera@protonmail.com联系我。

代码质量、测试和基准

要运行测试,请运行此命令

RANDOM_ORG_APIKEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx composer grumphp

每当向库中引入更改时,Travis CI都会运行测试和基准测试。

该库使用PHPSpec编写了测试。请随时在spec目录中查看它们。运行composer phpspec以触发测试。

在每次提交之前,使用GrumPHP执行一些检查,运行./vendor/bin/grumphp run以手动检查。

使用PHPInfection确保您的代码经过适当的测试,运行composer infection以测试您的代码。

贡献

欢迎通过发送Github pull请求来贡献。我非常积极回应哦 :-)

如果您不能为代码做出贡献,您也可以在GithubPaypal上赞助我。

变更日志

请参阅CHANGELOG.md以查看基于git提交的变更日志。