chypriote/pandascore-php

此包已被废弃且不再维护。未建议替代包。

PHP7的PandaScore API包装器

v1.1.0 2019-03-22 13:11 UTC

This package is auto-updated.

Last update: 2024-02-23 02:55:00 UTC


README

版本 v1.0.0-rc.1

目录

  1. 简介
  2. 下载
  3. 英雄联盟API
    1. 资源版本
    2. 初始化库
    3. 使用示例
    4. 缓存提供者
    5. 速率限制
    6. 调用缓存
    7. 异步请求
    8. 扩展
    9. 回调函数
    10. CLI支持

简介

欢迎使用PandaScore PHP7库仓库!本库的目标是为可能需要的人创建易于使用的库。这是一个完全面向对象的PandaScore API包装器。

以下是一些实用功能

  • 速率限制缓存 和限制超出预防 - 完全自动。
  • 调用缓存 - 这使库能够在短时间内重用已获取的数据 - 节省时间和API速率限制。
  • 自定义回调 - 您可以设置自定义函数,在请求处理前后调用。
  • 对象扩展 - 您可以向获取的API对象本身实现自己的方法,并在以后方便地使用它们。
  • CLI支持!您甚至可以在PHP CLI模式下轻松使用库。
  • 对象无处不在!API调用返回特殊对象的数据。

下载

获取此库最简单的方法是使用 Composer

安装Composer后,只需运行 composer require chypriote/pandascore-phpcomposer install 即可准备就绪!

PandaScore API

资源

以下是可以找到已实现的API资源表。尚未计划实现的状态为无状态端点。

资源 状态
所有视频游戏 - 联赛 All Videogames - Leagues resource implemented version
所有视频游戏 - 系列 All Videogames - Series resource implemented version
所有视频游戏 - 比赛 All Videogames - Tournaments resource implemented version
所有视频游戏 - 队伍 All Videogames - Matches resource implemented version
所有视频游戏 - 玩家 All Videogames - Teams resource implemented version
所有视频游戏 - 玩家 All Videogames - Players resource implemented version
LOL - 英雄 LOL - Champions resource implemented version
LOL - 比赛 LOL - Games resource implemented version
LOL - 物品 LOL - Items resource implemented version
LOL - 联赛 LOL - Leagues resource implemented version
LOL - 大师级 LOL - Masteries resource implemented version
LOL - 比赛 LOL - Matches resource implemented version
LOL - 玩家 LOL - Players resource implemented version
LOL - 符文 LOL - Runes resource implemented version
LOL - 系列 LOL - Series resource implemented version
LOL - 魔法 LOL - Spells resource implemented version
LOL - 统计 LOL - Stats resource implemented version
LOL - 队伍 LOL - Teams resource implemented version
LOL - 比赛 LOL - Tournaments resource implemented version
CSGO CSGO resource implemented version
DOTA 2 DOTA 2 resource implemented version
守望先锋 Overwatch resource implemented version

初始化库

如何开始?

//  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