dolejska-daniel / riot-api-league
为 PHP8 编写的《英雄联盟》API 包装器
Requires
- php: >=8.1
- ext-json: *
- dolejska-daniel/riot-api-base: ^v2
Requires (Dev)
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-09-21 07:39:37 UTC
README
版本 v2.0.0
目录
介绍
欢迎来到《英雄联盟》PHP 库仓库!这个库的目的是为可能需要它的任何人创建一个易于使用的库。这是一个针对《英雄联盟》API的完全面向对象的API包装器。
以下是一些实用功能
- 速率限制缓存 和超过限制的预防 - 完全自动。
- 调用缓存 - 允许库在给定时间段内重复使用已获取的数据 - 节省时间和密钥的速率限制。
- 静态数据端点 - 你可以像它们从未被弃用一样使用静态数据端点。
- 静态数据链接 - 库可以自动将相关静态数据链接到返回的对象中。
- 自定义回调 - 你可以设置自定义函数,该函数将在请求处理前后被调用。
- 对象扩展 - 你可以为获取的API对象实现自己的方法,并允许你在以后的工作中轻松使用它们。
- CLI 支持 - 在控制台中使用此库非常简单。
- 中间模式 支持 - 无论你的密钥是否在
中间模式
,你都将能够以相同的方式使用库(这意味着当你转到生产环境时,你不需要做任何更改)。 - 到处都是对象 - API调用返回特殊对象中的数据,这允许现代IDE提示现有属性和方法。
请主要参考 维基页面。此文件仅包含对库功能的概述。
下载
下载并使用此库的最简单方法是使用 Composer。如果你还没有使用Composer,你应该立即开始使用它!
在您的机器上安装Composer后,只需执行 composer require "dolejska-daniel/riot-api-league:^1"
命令即可准备使用库!
有关下载和初始设置的更多信息,请参阅 维基页面。
《英雄联盟》API
资源版本
以下是你可以找到的已实现的API资源和当前实现这些资源的版本表。有关端点和资源的更多信息,请参阅 维基页面。
初始化库
如何开始?
// Include all required files (installation via Composer is required) require_once __DIR__ . "/vendor/autoload.php"; use RiotAPI\LeagueAPI\LeagueAPI; use RiotAPI\Base\Definitions\Region; // Initialize the library $api = new LeagueAPI([ // Your API key, you can get one at https://developer.riotgames.com/ LeagueAPI::SET_KEY => 'YOUR_RIOT_API_KEY', // Target region (you can change it during lifetime of the library instance) LeagueAPI::SET_REGION => Region::EUROPE_EAST, ]); // And now you are ready to rock! $summoner = $api->getSummonerByName("I am TheKronnY"); $matchlist = $api->getMatchlistByAccount($summoner->accountId); foreach ($matchlist as $match) { // ... }
初始化库时,您可以设置许多其他设置 - 主要是为了启用特殊功能或修改库的默认行为。请参阅维基页面以获取库设置的全列表。
使用示例
使用LeagueAPI非常简单,只需看看如何根据召唤师名称获取召唤师信息。
// ...initialization... // this fetches the summoner data and returns SummonerDto object $summoner = $api->getSummonerByName('I am TheKronnY'); echo $summoner->id; // KnNZNuEVZ5rZry3I... echo $summoner->puuid; // rNmb6Rq8CQUqOHzM... echo $summoner->name; // I am TheKronnY echo $summoner->summonerLevel; // 69 print_r($summoner->getData()); // Or array of all the data /* Array * ( * [id] => KnNZNuEVZ5rZry3IyWwYSVuikRe0y3qTWSkr1wxcmV5CLJ8 * [accountId] => tGSPHbasiCOgRM_MuovMKfXw7oh6pfXmGiPDnXcxJDohrQ * [puuid] => rNmb6Rq8CQUqOHzMsFihMCUy4Pd201vDaRW9djAoJ9se7myXrDprvng9neCanq7yGNmz7B3Wri4Elw * [name] => I am TheKronnY * [profileIconId] => 3180 * [revisionDate] => 1543438015000 * [summonerLevel] => 69 * ) */
更多LeagueAPI的使用示例可以在这里找到。
缓存提供者
缓存提供者负责在库的实例中保存有关速率限制、调用缓存和静态数据的数据,以便于重复使用。当使用之前提到的任何功能时,此功能将自动启用。
使用此功能时,可以将LeagueAPI::SET_CACHE_PROVIDER
设置为您选择的任何类,前提是该类必须与PSR-6标准兼容,例如实现Psr\Cache\CacheItemPoolInterface
接口。通过使用LeagueAPI::SET_CACHE_PROVIDER_PARAMS
或LeagueAPI::SET_DD_CACHE_PROVIDER_PARAMS
选项,您可以将任何数据传递给缓存提供者类。
有关缓存提供者的更多信息,请参阅维基页面。
速率限制
此智能功能可以轻松防止超出您的每个键调用限制和方法限制。为了启用此功能,您必须将LeagueAPI::SET_CACHE_RATELIMIT
设置为true
。其他一切都是完全自动的,所以您只需要启用此功能。
有关速率限制的更多信息,请参阅维基页面。
调用缓存
此功能可以通过暂时保存从API获取的数据并将其用作结果数据来防止在短时间内对API进行不必要的调用。为了启用此功能,您必须将LeagueAPI::SET_CACHE_CALLS
设置为true
。您还应提供LeagueAPI::SET_CACHE_CALLS_LENGTH
选项以指定缓存数据的生存期,否则将使用默认的60秒
时间间隔。
有关API调用缓存的更多信息,请参阅维基页面。
异步请求
此功能允许您使用Guzzle进行请求分组和异步发送。在发送请求并收到响应后,将调用用户提供的回调函数。
有关异步请求的更多信息,请参阅维基页面。
静态数据端点
这些端点为您提供了一种简单的方法来将静态数据转换为对象实例,并轻松地与之一起工作。它们也支持在多个DataDragonAPI函数(显示图像)中。
有关静态数据端点的更多信息,请参阅维基页面。
静态数据链接
此功能允许您自动链接与您的请求相关的静态数据,任何数据都通过DataDragonAPI
进行管理。所有静态数据都将本地缓存,这使得在初始请求之后此操作非常快。此外,DataDragonAPI
发出的任何请求都不会计入您的速率限制。
有关静态数据链接的更多信息,请参阅维基页面。
扩展
使用 ApiObject
扩展是一个非常实用的工具,允许将您自己的方法和逻辑实现到 ApiObject
本身中。通过在初始化库时使用设置选项 LeagueAPI::SET_EXTENSIONS
来启用扩展。
有关 API 对象扩展的更多信息,请参阅 维基页面。
回调函数
允许您提供在发送实际 API 请求前后调用的自定义函数。
在调用之前,回调函数有取消即将到来的请求的能力 - 当任何 回调函数 返回 false
时,将引发异常 Exceptions\RequestException
并取消请求。
有关回调函数的更多信息,请参阅 维基页面。