Simple object oriented wrapper for Packagist API.
- PHP ^7.4 or ^8.0 (for PHP 7.1-7.3 please use the 1.x release line)
The recommended way to install Packagist API is through composer:
$ composer require knplabs/packagist-api
<?php
$client = new Packagist\Api\Client();
foreach ($client->search('sylius') as $result) {
echo $result->getName();
}
// Outputs:
sylius/sylius
sylius/resource-bundle
sylius/cart-bundle
sylius/flow-bundle
sylius/sales-bundle
sylius/shipping-bundle
sylius/taxation-bundle
sylius/money-bundle
sylius/assortment-bundle
sylius/addressing-bundle
sylius/payments-bundle
sylius/taxonomies-bundle
sylius/inventory-bundle
sylius/settings-bundle
sylius/promotions-bundle
...
<?php
$client->search('sylius', [], 2) // get first 2 pages
Gets full package details, generated dynamically by the Packagist API. Consider using getComposer() instead to use the Packagist API more efficiently if you don't need all the full metadata for a package.
<?php
$package = $client->get('sylius/sylius');
printf(
'Package %s. %s.',
$package->getName(),
$package->getDescription()
);
// Outputs:
Package sylius/sylius. Modern ecommerce for Symfony2.
Similar to get()
, but uses Composer metadata which is Packagist's preferred
way of retrieving details, since responses are cached efficiently as static files
by the Packagist service. The response lacks some metadata that is provided
by get()
, see Packagist API documentation
for details. Returns multiple packages, you need to select the requested
one from the indexed array.
<?php
$packages = $client->getComposer('sylius/sylius');
$package = $packages['sylius/sylius'];
$versions = $package->getVersions();
printf(
'Package %s. %s.',
$versions[0]->getName(),
$versions[0]->getDescription()
);
// Outputs:
Package sylius/sylius. Modern ecommerce for Symfony2.
<?php
foreach ($client->all() as $package) {
echo $package;
}
// Outputs:
abhinavsingh/jaxl
abishekrsrikaanth/fuel-util
abmundi/database-commands-bundle
...
<?php
$client->all(array('type' => 'library'));
$client->all(array('vendor' => 'sylius'));
You can also set a custom Packagist repository URL:
<?php
$client->setPackagistUrl('https://custom.packagist.site.org');
- A
Packagist\Api\PackageNotFoundException
will be thrown when the Packagist API returns a 404 response. - An
\InvalidArgumentException
will be thrown when the response from Packagist was not able to be parsed.
packagist-api
is licensed under the MIT License - see the LICENSE file for details.
KNPLabs is looking for maintainers (see why).
If you are interested, feel free to open a PR to ask to be added as a maintainer.
We’ll be glad to hear from you :)
This library is maintained by the following people (alphabetically sorted) :
- @robbieaverill