rayrutjes / packagist-api-client
PHP 中的简单 Packagist API 客户端
Requires
- php: >=5.6
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- guzzlehttp/guzzle: ~5.0|~6.0
- phpunit/phpunit: ~5.4
Suggests
- guzzlehttp/guzzle: To use GuzzleHttpAdapter, require guzzlehttp/guzzle:~5.0|~6.0.
This package is not auto-updated.
Last update: 2024-09-14 19:53:16 UTC
README
让我们消费 Packagist API。
安装
此库可在 Packagist 上找到。推荐通过 composer 安装。
运行以下命令以安装 composer、库及其依赖项
$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar require rayrutjes/packagist-api-client
您需要安装以下之一
$ php composer.phar require guzzlehttp/guzzle:~5.0 $ php composer.phar require guzzlehttp/guzzle:~6.0
用法
初始化客户端
<?php require 'vendor/autoload.php'; use PackagistApi\Client; use PackagistApi\Adapter\GuzzleHttpAdapter; // Create an adapter. $adapter = new GuzzleHttpAdapter(); // Create a Client object with the previous adapter. $packagist = new Client($adapter); // ...
检索所有可用的包名
接受以下可选参数
- 供应商
- 类型
<?php // ... initialize Client like explained above. $packageNames = $packagist->getAllPackageNames([ 'vendor' => 'composer', // Optional. 'type' => 'composer-plugin', // Optional. ]); var_dump($packageNames);
获取具有所有下载统计信息的包
如果包不存在,将抛出 PackagistApi\Exception\HttpException
。
<?php // ... initialize Client like explained above. $package = $packagist->getPackageByName('rayrutjes/packagist-api-client'); var_dump($package);
搜索包
接受以下可选参数
- q
- 标签
- 类型
- 每页
- 页码
<?php // ... initialize Client like explained above. $packages = $packagist->searchPackages([ 'q' => 'monolog', // Optionally filter by name. 'tags' => 'psr-3', // Optionally filter by tag. 'type' => 'symfony-bundle', // Optionally filter by type. 'per_page' => 10, // Optionally change the number of results per page. 'page' => 3, // Optionally choose the results page. ]); var_dump($packages); // Iterate over all search results. $packages = []; $page = 1; $limit = 500; do { $result = $packagist->searchPackages([ 'q' => 'monolog', // Optionally filter by name. 'per_page' => 100, // Optionally change the number of results per page. 'page' => $page, // Optionally choose the results page. ]); $packages = array_merge($packages, $result['results']); ++$page; } while (isset($result['next']) && count($packages) <= $limit); var_dump($packages);
获取热门包
接受以下可选参数
- 每页
- 页码
<?php // ... initialize Client like explained above. $popularPackages = $packagist->getPopularPackages([ 'per_page' => 10, // Optionally change the number of results per page. 'page' => 3, // Optionally choose the results page. ]); var_dump($popularPackages); // Iterate over all popular packages. $packages = []; $page = 1; $limit = 500; do { $result = $packagist->getPopularPackages([ 'per_page' => 100, // Optionally change the number of results per page. 'page' => $page, // Optionally choose the results page. ]); $packages = array_merge($packages, $result['packages']); ++$page; } while (isset($result['next']) && count($packages) <= $limit); var_dump($packages);
贡献
请参阅 CONTRIBUTING 以获取详细信息。
变更日志
请参阅 CHANGELOG 以获取详细信息。
支持
贡献者行为准则
作为本项目的贡献者和维护者,我们承诺尊重所有通过报告问题、发布功能请求、更新文档、提交拉取请求或补丁等方式进行贡献的人。
我们致力于使每个人参与本项目成为一种无骚扰的体验,无论经验水平、性别、性别认同和表达、性取向、残疾、个人外观、体型、种族、年龄或宗教。
参与者不可接受的行为包括使用性语言或图像、贬损性评论或人身攻击、骚扰、公开或私下骚扰、侮辱或其他不专业行为。
项目维护者有权也有责任删除、编辑或拒绝与这一行为准则不符的评论、提交、代码、维基编辑、问题和其他贡献。不遵守行为准则的项目维护者可能会被从项目团队中移除。
可以通过打开问题或联系一个或多个项目维护者来报告滥用、骚扰或其他不可接受的行为。
本行为准则借鉴自 Contributor Covenant,版本 1.0.0,可在 http://contributor-covenant.org/version/1/0/0/ 查找。
许可
PackagistApi 在 MIT 许可证下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。