chypriote / pandascore-php
PHP7的PandaScore API包装器
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
README
版本 v1.0.0-rc.1
目录
简介
欢迎使用PandaScore PHP7库仓库!本库的目标是为可能需要的人创建易于使用的库。这是一个完全面向对象的PandaScore API包装器。
以下是一些实用功能
- 速率限制缓存 和限制超出预防 - 完全自动。
- 调用缓存 - 这使库能够在短时间内重用已获取的数据 - 节省时间和API速率限制。
- 自定义回调 - 您可以设置自定义函数,在请求处理前后调用。
- 对象扩展 - 您可以向获取的API对象本身实现自己的方法,并在以后方便地使用它们。
- CLI支持!您甚至可以在PHP CLI模式下轻松使用库。
- 对象无处不在!API调用返回特殊对象的数据。
下载
获取此库最简单的方法是使用 Composer。
安装Composer后,只需运行 composer require chypriote/pandascore-php
和 composer install
即可准备就绪!
PandaScore API
资源
以下是可以找到已实现的API资源表。尚未计划实现的状态为无状态端点。
初始化库
如何开始?
// Include all required files require_once __DIR__ . "/vendor/autoload.php"; use PandaScoreAPI\PandaScoreAPI; // Initialize the library $api = new PandaScoreAPI([ // Your API key, you can get one at https://pandascore.co/settings PandaScoreAPI::SET_TOKEN => 'YOUR_PANDASCORE_TOKEN', // If you need to use a game specific API, you initialize it at launch PandascoreAPI::USE_LEAGUE_OF_LEGENDS => true, ]); // And now you are ready to rock! $ch = $api->leagues->getLeague(61); // Get only the datas from the games you need $lolch = $api->lol->tournaments->listTournaments();
在初始化库时,您还可以设置很多其他内容 - 主要是为了启用特殊功能或修改库的行为。
使用示例
使用PandaScoreAPI进行操作非常简单,只需查看如何根据ID获取联赛信息。
// ...initialization... // this fetches the summoner data and returns SummonerDto object $league = $api->getLeague(4213); echo $league->id; // 4213 echo $league->name; // LVP SLO echo $league->slug; // league-of-legends-lvp-slo print_r($league->getData()); // Or array of all the data /* Array * ( * [id] => 4213 * [slug] => league-of-legends-lvp-slo * [name] => LVP SLO * ) */
缓存提供者
缓存提供者负责在库的实例中保持速率限制和调用缓存的数据。当使用上述任何功能时,此功能将自动启用。
使用此功能时,可以将PandaScoreAPI::SET_CACHE_PROVIDER
设置为任何类,前提是该类必须实现Objects\ICacheProvider
接口。通过使用PandaScoreAPI::SET_CACHE_PROVIDER_PARAMS
选项,您可以传递任何变量到缓存提供者。
速率限制
此智能功能可以轻松防止超过您每个键的调用限制和方法限制。要启用此功能,您必须将PandaScoreAPI::SET_CACHE_RATELIMIT
设置为true
。一切完全自动,因此您只需要启用此功能即可。
调用缓存
此功能可以通过临时保存从API获取的数据并使用它们作为结果数据来防止在短时间内对API进行不必要的调用。要启用此功能,您必须将PandaScoreAPI::SET_CACHE_CALLS
设置为true
。您还应该提供PandaScoreAPI::SET_CACHE_CALLS_LENGTH
选项,否则将使用默认的60秒
时间间隔。
异步请求
此功能允许使用Guzzle进行请求分组和异步发送。在发送请求并接收其响应后,将调用用户提供的回调函数并传递接收到的数据。
扩展
对于ApiObjects,使用扩展是一个有用的工具,允许将您自己的方法实现到ApiObjects本身。通过在初始化库时使用设置选项PandaScoreAPI::SET_EXTENSIONS
来启用扩展。
回调函数
允许您提供在发送实际API请求之前和之后被调用的自定义函数。
在回调函数中,有取消即将到来的请求的能力 - 当任何回调函数返回false
时,将抛出异常Exceptions\RequestException
并取消请求。
CLI支持
您可以在CLI中轻松获取API结果。
root@localhost:~/src/PandaScoreAPI# php PandaScoreAPICLI.php getLeague 61 --config ~/PandaScoreAPI_Config.json