esi / librariesio
LibrariesIO - Libraries.io API 的简单 API 包装器/客户端。
Requires
- php: ^8.2 <8.5
- guzzlehttp/guzzle: ^7.0 <8.0
- kevinrob/guzzle-cache-middleware: ^5.1 <6.0
- symfony/cache: ^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: dev-master
- phpstan/phpstan: ^1.11 <2.0
- phpstan/phpstan-phpunit: ^1.4
- phpstan/phpstan-strict-rules: ^1.6
- phpunit/phpunit: ^11
This package is auto-updated.
Last update: 2024-09-22 11:34:55 UTC
README
2.0.0 重要说明
- “master” 分支是用于开发即将推出的 2.0.0 版本。
- 应该没问题,但仍然建议在生产环境中谨慎使用。
- 函数参数、类 API 等,在开发过程中可能会发生变化。
- 文档(目前为 WIP)尚未更新更改。
重要说明
该项目源于我扩展对 API 和 GuzzleHttp 知识的愿望。我的实现远非完美,因此我欢迎任何反馈。
- Libraries.io API 具有分页能力,但此库中尚未完全实现。
安装
Composer
使用以下命令安装最新版本:
$ composer require esi/librariesio
然后,在您的项目中(如果尚未包含),包括 composer 的自动加载。例如
<?php require 'vendor/autoload.php'; ?>
有关更多信息,请参阅安装文档。
基本用法
LibrariesIO 根据其 "组件" 将不同的端点分开
- Esi\LibrariesIO\LibrariesIO::platform()
- 不需要 $endpoint,尽管您可以传递 'platforms'。
- Esi\LibrariesIO\LibrariesIO::project()
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- 当前端点有
- contributors
- dependencies
- dependents
- dependent_repositories
- project
- search
- sourceRank
- 当前端点有
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- Esi\LibrariesIO\LibrariesIO::repository()
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- 当前端点有
- dependencies
- projects
- repository
- 当前端点有
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- Esi\LibrariesIO\LibrariesIO::user()
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- 当前端点有
- dependencies
- packages
- package_contributions
- repositories
- repository_contributions
- subscriptions
- user
- 当前端点有
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- Esi\LibrariesIO\LibrariesIO::subscription()
- 需要一个 'endpoint' 参数来指定您要查找的子集。
- 当前端点有
- subscribe
- check
- update
- unsubscribe
- 当前端点有
- 需要一个 'endpoint' 参数来指定您要查找的子集。
每个 'subset' 都有自己的必需选项。请查阅文档(目前为 WIP)以获取更多信息。
例如,假设您想获取可用的平台列表。要这样做
<?php use Esi\LibrariesIO\LibrariesIO; use Esi\LibrariesIO\Utils; $api = new LibrariesIO('..yourapikey..', \sys_get_temp_dir()); $response = $api->platform(); print_r(Utils::toArray($response)); /* Array ( [0] => Array ( [name] => NPM [project_count] => 4079049 [homepage] => https://npmjs.net.cn [color] => #f1e05a [default_language] => JavaScript ) [1] => Array ( [name] => Maven [project_count] => 588275 [homepage] => http://maven.org [color] => #b07219 [default_language] => Java ) [...] ) */ ?>
有关更多信息,请参阅基本用法文档。
测试
单元测试由 PHPUnit 处理。鉴于此库的性质,其目的是与实时 API 交互,因此测试有限。
在执行测试时,不会对 libraries.io API 进行实际调用。相反,使用模拟数据和模拟类实例来测试库是否正常工作。
文档
文档位于 docs/
目录或在线 这里。
关于
需求
- LibrariesIO 与 PHP 8.2.0 或更高版本兼容。
- 所有 API 请求都包含一个 api_key 参数。您需要从 libraries.io 的账户页面获取您的 API 密钥。
提交错误和功能请求
错误和功能请求在 GitHub 上跟踪
问题是最快报告错误的方式。如果您发现错误或文档错误,请首先检查以下内容
- 不存在关于此错误的已开放问题
- 该问题尚未被解决(例如,在已关闭的问题中)
贡献
LibrariesIO接受社区对代码和文档的贡献。这些贡献可以以问题或拉取请求的形式提交到LibrariesIO仓库。
LibrariesIO采用MIT许可证。当您向LibrariesIO提交新功能或补丁时,您正在授予许可以在MIT许可证下许可这些功能或补丁。
LibrariesIO尝试遵循PHPStan级别9的严格规则和前沿技术。请确保任何贡献也这样做。
指南
在探讨如何之前,以下是指南。如果您的拉取请求未能通过这些指南,则将被拒绝,您需要修改后再重新提交。这可能听起来有些严格,但这是为了维持代码库的质量所必需的。
PHP风格
请确保所有新的贡献符合PSR-12编码风格指南。项目目前尚未完全符合PSR-12,但为了确保最容易过渡到编码指南,我建议任何贡献都遵循它们。
文档
如果您更改了需要更改文档的内容,那么您需要添加它。新方法、参数、更改默认值、添加常量等,都需要更改文档。变更日志也必须更新每个更改。此外,PHPDoc块也必须维护。
文档化函数/变量(PHPDoc)
请确保所有新的贡献遵守
当文档化新函数或更改现有文档时。
分支
一次一件事情:拉取请求应只包含一个更改。这并不意味着只有一个提交,而是一个更改——无论需要多少个提交。这样做的原因是,如果您同时更改X和Y,但发送了一个包含这两个更改的拉取请求,我们可能真的需要X,但不同意Y,这意味着我们无法合并请求。使用Git-Flow分支模型,您可以创建这两个功能的分支并发送两个请求。
作者
Eric Sizemore - admin@secondversion.com - https://www.secondversion.com
许可证
LibrariesIO采用MIT许可证 - 有关详细信息,请参阅LICENSE.md
文件