velkuns / artifactsmmo-client
Artifacts MMO 游戏代码的PHP客户端
2.0.0
2024-08-25 16:38 UTC
Requires
- php: 8.1.*||8.2.*||8.3.*
- ext-json: *
- eureka/component-serializer: ^2.1
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0||^2.0
- psr/log: ^1.1||^2.0||^3.0
Requires (Dev)
- cebe/php-openapi: ^1.7.0
- eureka/component-console: ^6.2.0
- eureka/component-curl: ^3.0.0
- friendsofphp/php-cs-fixer: ^3.62.0
- lcobucci/clock: ^3.0.0
- maglnet/composer-require-checker: ^4.7.1
- nikic/php-parser: ^4.19.1
- nyholm/psr7: ^1.8.1
- phpstan/phpstan: ^1.11.11
- phpstan/phpstan-phpunit: ^1.4.0
- phpunit/phpcov: ^9.0.2
- phpunit/phpunit: ^10.5.30
- shipmonk/composer-dependency-analyser: ^1.7.0
README
为什么?
此SDK/客户端是调用Artifacts MMO API的包装器。每个客户端方法调用一个端点并返回一个由Artifacts MMO API OpenAPI Spec定义的值对象。
Artifacts MMO API 文档: https://api.artifactsmmo.com/docs/
当POST端点需要BODY时,需要Body*值对象(VO)来调用端点。如果有任何查询参数可用,您也可以将其传递给端点(在此情况下,PHP文档已为具有名称的参数设置)
安装
如果您希望将其安装到项目中,请通过composer安装
composer require velkuns/artifactsmmo-client
使用
使用
<?php declare(strict_types=1); namespace Application; use Eureka\Component\Curl\HttpClient; use Nyholm\Psr7\Factory\Psr17Factory; use Psr\Log\NullLogger; use Velkuns\ArtifactsMMO\Client\Client; use Velkuns\ArtifactsMMO\Client\MyClient; use Velkuns\ArtifactsMMO\Config\ArtifactsMMOConfig; use Velkuns\ArtifactsMMO\Request\RequestBuilder; use Velkuns\ArtifactsMMO\VO\Body\BodyCrafting; use Velkuns\ArtifactsMMO\VO\Body\BodyDestination; require_once(__DIR__ . '/../vendor/autoload.php'); $token = ''; // Your token //~ Config part $config = new ArtifactsMMOConfig('api.artifactsmmo.com', 'https', $token); //~ Client dependencies $httpClient = new HttpClient(userAgent: 'artifactsmmo-client-test/1.0'); $requestFactory = new Psr17Factory(); $uriFactory = new Psr17Factory(); $requestBuilder = new RequestBuilder($requestFactory, $uriFactory, $config); $logger = new NullLogger(); //~ Client $client = new Client($httpClient, $logger, $requestBuilder); //~ Call endpoint and get Value Object with response data $status = $client->getStatus(); // Get status (VO\Status); echo "Server is $status->status\n"; echo "Number of characters online: $status->charactersOnline\n"; //~ Move a character $myClient = new MyClient($httpClient, $logger, $requestBuilder); $myClient->actionMove('character_name', new BodyDestination(1, 1)); //~ Crafting an item $myClient->actionCrafting('character_name', new BodyCrafting('wooden_staff', 1));
贡献
请参阅CONTRIBUTING文件。
安装/更新项目
您可以使用以下命令安装项目
make install
并使用以下命令更新
make update
注意:对于组件,composer.lock
文件未提交。
测试 & CI(持续集成)
测试
您可以使用以下命令在您的端运行测试(带有覆盖率)
make tests
您可以使用以下命令在您的端运行测试(带有覆盖率)
make integration
对于更美观的输出(但没有覆盖率),您可以使用以下命令
make testdox # run tests without coverage reports but with prettified output
代码风格
您还可以使用以下命令运行代码风格检查
make phpcs
您还可以使用以下命令运行代码风格修复
make phpcsf
静态分析
要执行代码的静态分析(使用phpstan,默认为lvl 9),可以使用以下命令
make analyze
最低支持版本
make php-min-compatibility
最高支持版本
make php-max-compatibility
CI模拟
最后,“辅助”命令,您可以在提交和推送之前运行的是
make ci
许可证
本项目采用MIT许可证 - 请参阅LICENSE
文件以获取详细信息