Download the PHP package clue/packagist-api-react without Composer

On this page you can find all versions of the php package clue/packagist-api-react. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package packagist-api-react

clue/reactphp-packagist-api

CI status installs on Packagist

Simple async access to packagist.org's API, like listing project details, number of downloads etc., built on top of ReactPHP.

This is an async version of KnpLab's excellent packagist-api, but built upon ReactPHP's non-blocking event-loop. It uses the async HTTP client library clue/reactphp-buzz to process any number of requests in parallel. In a nutshell, it allows you to issue multiple requests to the packagist API in parallel and process them out of order whenever their results arrive - while trying to hide all the nifty details of async processing. On top of that it provides a very easy to use API, very much similar to the original packagist-api, enriched with the comfort of ReactPHP's Promises.

Table of Contents

Quickstart example

Once installed, you can use the following code to fetch package information from packagist.org:

See also the examples.

Usage

Client

The Client is responsible for assembling and sending HTTP requests to the remote Packagist API. It requires a Browser object bound to the main EventLoop in order to handle async requests:

If you need custom connector settings (DNS resolution, TLS parameters, timeouts, proxy servers etc.), you can explicitly pass a custom instance of the ConnectorInterface to the Browser instance:

Promises

All public methods on the Client resemble the API provided by KnpLab's packagist-api, except for an async shift in their return values: Sending requests is async (non-blocking), so you can actually send multiple requests in parallel. Packagist will respond to each request with a response message, the order is not guaranteed. Sending requests uses a Promise-based interface that makes it easy to react to when a request is fulfilled (i.e. either successfully resolved or rejected with an error).

Cancellation

The returned Promise is implemented in such a way that it can be cancelled when it is still pending. Cancelling a pending promise will reject its value with an Exception and clean up any underlying resources.

Timeouts

This library uses a very efficient HTTP implementation, so most API requests should usually be completed in mere milliseconds. However, when sending API requests over an unreliable network (the internet), there are a number of things that can go wrong and may cause the request to fail after a time. As such, timeouts are handled by the underlying HTTP library and this library respects PHP's default_socket_timeout setting (default 60s) as a timeout for sending the outgoing API request and waiting for a successful response and will otherwise cancel the pending request and reject its value with an Exception.

Note that this timeout value covers creating the underlying transport connection, sending the API request, waiting for the Packagist service to process the request and receiving the full API response. To pass a custom timeout value, you can assign the underlying timeout option like this:

Similarly, you can use a negative timeout value to not apply a timeout at all or use a null value to restore the default handling. Note that the underlying connection may still impose a different timeout value. See also the underlying timeout option for more details.

search()

The search(string $query, array $filters = array()): PromiseInterface<Package[],Exception> method can be used to search packages matching the given query string and optionally matching the given filter parameter.

It resolves with an array containing zero or more Package objects on success or rejects with an Exception on error.

Note that this method follows Packagist's paginated search results which may contain a large number of matches depending on your search. Accordingly, this method sends one API request for each page which may take a while for the whole search to be completed. It is not uncommon to take around 5-10 seconds to fetch search results for 1000 matches.

get()

The get(string $name): PromiseInterface<Package,Exception> method can be used to get package details for the given package name.

It resolves with a single Package object on success or rejects with an Exception on error.

all()

The all(array $filters = array()): PromiseInterface<string[],Exception> method an be used to list all package names, optionally matching the given filter parameter.

It resolves with an array of package names on success or rejects with an Exception on error.

Package

The Package class represents information about a given composer package. This class is part of the underlying KnpLab/packagist-api, its full name is actually Packagist\Api\Result\Package.

See its class outline for all available methods.

getName()

The getName() method can be used to get the package name.

getDescription()

The getDescription() method can be used to the package description.

Install

The recommended way to install this library is through Composer. New to Composer?

This project follows SemVer. This will install the latest supported version:

See also the CHANGELOG for details about version upgrades.

This project aims to run on any platform and thus does not require any PHP extensions and supports running on legacy PHP 5.3 through current PHP 8+ and HHVM. It's highly recommended to use PHP 7+ for this project.

Tests

To run the test suite, you first need to clone this repo and then install all dependencies through Composer:

To run the test suite, go to the project root and run:

License

This project is released under the permissive MIT license.

Did you know that I offer custom development services and issuing invoices for sponsorships of releases and for contributions? Contact me (@clue) for details.


All versions of packagist-api-react with dependencies

PHP Build Version
Package Version
Requires php Version >=5.3
clue/buzz-react Version ^2.5
knplabs/packagist-api Version ~1.0
rize/uri-template Version ^0.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package clue/packagist-api-react contains the following files

Loading the files please wait ....