package-url/packageurl-php

Builder and parser based on the package URL (purl) specification.

Fund package maintenance!
jkowalleck

1.1.2 2024-02-05 11:20 UTC

README

shield_gh-workflow-test shield_packagist-version shield_license

Package URL (purl) for PHP

A parser and builder based on package url spec, implemented in PHP.

License: MIT

Install

composer require package-url/packageurl-php

Usage

see also the examples.

<?php

use PackageUrl\PackageUrl;

$purl = (new PackageUrl('composer', 'console'))
    ->setNamespace('symfony')
    ->setVersion('6.3.8')
    ->setQualifiers([
        PackageUrl::QUALIFIER_VCS_URL => 'git+https://github.com/symfony/console.git@v6.3.8',
    ]);

$purlString = $purl->toString();

// string(96) "pkg:composer/symfony/console@6.3.8?vcs_url=git%2Bhttps://github.com/symfony/console.git%40v6.3.8"
var_dump($purlString);

// string(96) "pkg:composer/symfony/console@6.3.8?vcs_url=git%2Bhttps://github.com/symfony/console.git%40v6.3.8"
var_dump((string) $purl);

$purl2 = PackageUrl::fromString($purlString);
// bool(true)
var_dump($purl == $purl2);

Contributing

Feel free to open pull requests.
See the contribution docs for details.