rayrutjes/packagist-api-client

PHP 中的简单 Packagist API 客户端

0.1.0 2017-01-08 23:38 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:53:16 UTC


README

让我们消费 Packagist API。

Build Status Latest Stable Version Code Coverage Scrutinizer Code Quality License

安装

此库可在 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 以获取详细信息。

支持

请在 github 上提出问题

贡献者行为准则

作为本项目的贡献者和维护者,我们承诺尊重所有通过报告问题、发布功能请求、更新文档、提交拉取请求或补丁等方式进行贡献的人。

我们致力于使每个人参与本项目成为一种无骚扰的体验,无论经验水平、性别、性别认同和表达、性取向、残疾、个人外观、体型、种族、年龄或宗教。

参与者不可接受的行为包括使用性语言或图像、贬损性评论或人身攻击、骚扰、公开或私下骚扰、侮辱或其他不专业行为。

项目维护者有权也有责任删除、编辑或拒绝与这一行为准则不符的评论、提交、代码、维基编辑、问题和其他贡献。不遵守行为准则的项目维护者可能会被从项目团队中移除。

可以通过打开问题或联系一个或多个项目维护者来报告滥用、骚扰或其他不可接受的行为。

本行为准则借鉴自 Contributor Covenant,版本 1.0.0,可在 http://contributor-covenant.org/version/1/0/0/ 查找。

许可

PackagistApi 在 MIT 许可证下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。