Get support for KnpLabs/packagist-api
If you're new to LTH, please see our FAQ for more information on what it is we do.
Support Options
Unfortunately, there are currently no active helpers for this repository on the platform. Until they become available, we reccomend the following actions:
View Open IssuesTake a look to see if anyone else has experienced the same issue as you and if they managed to solve it.
Open an IssueMake sure to read any relevant guidelines for opening issues on this repo before posting a new issue.
Sponsor directlyCheck out the page and see if there are any options to sponsor this project or it's developers directly.
KnpLabs/packagist-api
Packagist API
Simple object oriented wrapper for Packagist API.
Requirements
- PHP ^7.4 or ^8.0 (for PHP 7.1-7.3 please use the 1.x release line)
Installation
The recommended way to install Packagist API is through composer:
composer require knplabs/packagist-api
Usage
Search for packages:
<?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
...
You can limit results to a desired amount of pages:
<?php
$client->search('sylius', [], 2) // get first 2 pages
Get package details:
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.
Get composer details: {#get-composer-details}
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.
List all packages:
<?php
foreach ($client->all() as $package) {
echo $package;
}
// Outputs:
abhinavsingh/jaxl
abishekrsrikaanth/fuel-util
abmundi/database-commands-bundle
...
They can be filtered by type or vendor:
<?php
$client->all(array('type' => 'library'));
$client->all(array('vendor' => 'sylius'));
Custom Packagist repositories
You can also set a custom Packagist repository URL:
<?php
$client->setPackagistUrl('https://custom.packagist.site.org');
Errors
- 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.
License
packagist-api
is licensed under the MIT License - see the LICENSE file for details.
Maintainers
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
Our Mission
We want to make open source more sustainable. The entire platform was born from this and everything we do is in aid of this.
From the Blog
Interesting Articles
-
Generating income from open source
Jun 23 • 8 min read
-
2023 State of OSS
Apr 23 • 45 min read ★
-
A funding experiment...
Aug 19 • 10 min read
-
But You Said I could
Aug 19 • 2 min read
Thank you for checking out LiveTechHelper |
2025 © lth-dev incorporated
p-e622a1a2