markwalet/laravel-packagist
Laravel Packagist
A Laravel wrapper for the spatie/packagist-api package.
Installation
You can install this package with composer:
composer require markwalet/laravel-packagist
Laravel uses Package auto-discovery, so you don't have to register the service provider. If you want to register the service provider manually, add the following line to your config/app.php file:
MarkWalet\Packagist\PackagistServiceProvider::class,
Usage
There are two main ways how you can make Packagist calls:
Using the application container
/** @var \Spatie\Packagist\PackagistClient $client */
$client = app(\Spatie\Packagist\PackagistClient::class);
$client->getPackage('markwalet', 'laravel-packagist');
Using the facade
Packagist::getPackage('markwalet', 'laravel-packagist');
Available methods
List package names
// All packages
Packagist::getPackagesNames();
// Filter on type.
Packagist::getPackagesNamesByType('composer-plugin');
// Filter on organization
Packagist::getPackagesNamesByVendor('markwalet');
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']);
Pagination
Searching for packages returns a paginated result. You can change the pagination settings by adding more parameters.
// 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('markwalet/laravel-packagist');
Packagist::getPackageMetadata('markwalet', 'laravel-packagist');
// Using the API. (slower, cached for 12 hours by Packagist.
Packagist::getPackage('markwalet/laravel-packagist');
Packagist::getPackage('markwalet', 'laravel-packagist');
Get Statistics
$packagist->getStatistics();
Configuration
By default, the api url for Packagist is set to https://packagist.org. If you want to override that, you can add the following code block to your config/services.php file:
'packagist' => [
'base_url' => 'https://packagist.org',
'repo_url' => 'https://repo.packagist.org',
],
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.8.0 | ^8.2 | ^12.0| | MIT | |
| v1.7.1 | ^8.1 | ^10.0| | MIT | |
| v1.7.0 | ^8.1 | ^10.0| | MIT | |
| v1.6.0 | 8.* | 8.*| | MIT | |
| v1.5.0 | 8.* | 8.*| | MIT | |
| v1.4.0 | ~7.4| | 6.*| | MIT | |
| v1.3.0 | ~7.4| | 6.*| | MIT | |
| v1.2.0 | ^8.0| | 6.*| | MIT | |
| v1.1.0 | ^7.2 | 6.*| | MIT | |
| v1.0.0 | ^7.2 | 6.*| | MIT |