iarcadia/php-magic-pokeapi

一个出色的PokéAPI PHP包装器。

1.2.0 2017-12-15 16:03 UTC

This package is auto-updated.

Last update: 2024-09-29 04:09:01 UTC


README

Packagist License Latest Stable Version Total Downloads

此包是一个面向对象的PHP包装器,用于使用PokéAPI的版本2 RESTful API。有了MagicPokeAPI,你可以通过几行代码从PokéAPI服务器获取大量数据。该包包含一个有用的迷你缓存系统。

什么是PokéAPI?

这是一个与一个广泛的数据库相连的完整RESTful API,详细介绍了宝可梦主游戏系列的所有内容。

安装

使用composer要求此包

composer require iarcadia/php-magic-pokeapi

配置

首先,您需要将文件放入config文件夹中。

cache.php与缓存系统相关。

request.php与请求系统相关。

lang.php与语言系统相关。

请尊重这些文件中的注释。

使用方法

第一步

是的,你可能已经猜到了:为了继续,你必须创建一个你喜欢的PokéAPI包装器的实例。

$api = new PokeAPI();

别忘了包含文件或使用类。(例如use iArcadia\MagicPokeAPI\PokeAPI

第二步

你必须指定你想要查找的资源!使用resource()方法。

$api->resource('pokemon');
// or (and the recommended one)
$api->resource(PokeAPI::RESOURCE_POKEMON);

PokéAPI类为所有资源提供了常量。使用它们代替直接字符串可能是个好主意。

常量列表可在src/PokeAPI.php文件中找到。

端点

设置结果数量(或“限制”)

使用limit()方法。

$api->limit(20);

设置搜索起点(或“偏移”)

使用offset()skip()方法。

$api->offset(5);
// or
$api->skip(5);

skip()方法是对offset()的一个别名。

执行请求

使用get()方法。

$data = $api->get();

资源详细信息

非常简单,只需使用find()方法。

// by name
$item = $api->find('arcanine');
// or by id
$item = $api->find(25);

其他

请求原始URL

你想直接写URL吗?使用raw()方法。

// endpoint
$api->raw('/ability/');
// with parameters
$api->raw('/pokemon-species/?limit=30&offset=60');
// resource details
$api->raw('/pokemon/bulbasaur/');
// with full URL
$api->raw('https://www.pokeapi.co/api/v2/item/203');

你可以用数组或多个参数指定多个URL。

// array way
$api->raw(['/ability/', 'https://www.pokeapi.co/api/v2/item/203']);
// many args way
$api->raw('/ability/', 'https://www.pokeapi.co/api/v2/item/203');

请注意,使用它后,你的对象属性(url,resource,limit和offset)将更新为你的原始URL(或如果你指定了多个URL,则是最后一个)。

强制缓存更新

如果你有理由想要强制更新缓存文件,请使用cacheForcing()方法。

$api->cacheForcing(true);

它将只更新下一次请求的缓存。

提示

链式方法

多亏了面向对象的力量,你可以快速设置两个不同请求之间的选项。

// for endpoint
$api->limit(20)->offset(60)->resource(PokeAPI::RESOURCE_ITEM)->get();
// for resource details
$api->resource(PokeAPI::RESOURCE_ITEM)->find('potion');

构造函数选项

如果你愿意,你还可以在实例创建时设置选项(如果你知道它们不会改变,例如)。

$api = new PokeApi(
[
    'limit' => 20,
    'offset' => 0, // works with "skip" too
    'resource' => PokeAPI::RESOURCE_CONTEST_EFFECT
]);

使用自动资源名称翻译

注意:目前仅支持宝可梦名称!

如果你决定激活自动资源名称翻译(在config/lang.php文件中),你将能够使用你的语言名称来请求数据!

// Charizard in french will be translated to:
// $api->resource(PokeAPI::RESOURCE_POKEMON)->find('charizard');
$api->resource(PokeAPI::RESOURCE_POKEMON)->find('dracaufeu');

// Nidoqueen in korean will be translated to:
// $api->resource(PokeAPI::RESOURCE_POKEMON)->find('nidoqueen');
$api->resource(PokeAPI::RESOURCE_POKEMON)->find('니드퀸');

加分:即使你使用这个功能,所有的英文仍然会继续工作!

变更日志

请参阅CHANGELOGS.md