, (*1)
Fetch package info from Packagist
, (*2)
This package makes it easy to search and fetch package info using the Packagist API., (*3)
Support us
, (*4)
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products., (*5)
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall., (*6)
Installation
You can install the package via composer:, (*7)
``` bash
composer require spatie/packagist-api, (*8)
There is also a [Laravel wrapper](https://packagist.org/packages/markwalet/laravel-packagist) available for this package.
## Usage
You must pass a Guzzle client and a url generator to the constructor of `Spatie\Packagist\PackagistClient`.
```php
$client = new \GuzzleHttp\Client();
$generator = new \Spatie\Packagist\PackagistUrlGenerator();
$packagist = new \Spatie\Packagist\PackagistClient($client, $generator);
List package names
// All packages
$packagist->getPackagesNames();
// List packages by type.
$packagist->getPackagesNamesByType('composer-plugin');
// List packages by organization
$packagist->getPackagesNamesByVendor('spatie');
Searching for packages
// Search packages by name.
$packagist->searchPackagesByName('packagist');
// Search packages by tag.
$packagist->searchPackagesByTags('psr-3');
// Search packages by type.
$packagist->searchPackagesByType('composer-plugin');
// Combined search.
$packagist->searchPackages('packagist', ['type' => 'library']);
Searching for packages returns a paginated result. You can change the pagination settings by adding more parameters., (*9)
// Get the third page, 10 items per page.
$packagist->searchPackagesByName('packagist', 3, 10);
Getting package data.
// Using the Composer metadata. (faster, but less data)
$packagist->getPackageMetadata('spatie/packagist-api');
$packagist->getPackageMetadata('spatie', 'packagist-api');
// Using the API. (slower, cached for 12 hours by Packagist.
$packagist->getPackage('spatie/packagist-api');
$packagist->getPackage('spatie', 'packagist-api');
Get Statistics
$packagist->getStatistics();
Get security vulnerability advisories
// Get advisories for specific packages
$packages = ['spatie/packagist-api'];
$advisories = $packagist->getAdvisories($packages);
// Get advisories for specific packages that were updated after some timestamp
$packages = ['spatie/packagist-api'];
$advisories = $packagist->getAdvisories($packages, strtotime('2 weeks ago'));
// Get advisories only for specific versions of specific packages
$packages = ['spatie/packagist-api' => '2.0.2'];
$advisories = $packagist->getAdvisoriesAffectingVersions($packages);
Changelog
Please see CHANGELOG for more information what has changed recently., (*10)
Testing
bash
composer test
, (*11)
Contributing
Please see CONTRIBUTING for details., (*12)
Security
If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker., (*13)
Credits
About Spatie
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*14)
License
The MIT License (MIT). Please see License File for more information., (*15)