package-url/packageurl-php

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

Package info

github.com/package-url/packageurl-php

Homepage

pkg:composer/package-url/packageurl-php

Fund package maintenance!

jkowalleck

Statistics

Installs: 2 042 425

Dependents: 2

Suggesters: 1

Stars: 13

Open Issues: 10

1.1.2 2024-02-05 11:20 UTC

Requires

  • php: ^7.3 || ^8.0

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 32058ad61f0d8b457fa26e7860bbd8b903196d3f

packageurlpackage-urlpackageurlpurl


README

👁 build
👁 packagist
👁 license

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

License: MIT

Note

PackageURL (PURL) is currently undergoing a process of review and standardization, leading to updates in the specification.
As a result, this library may no longer comply with the latest PURL standards. It will not receive further updates until the standardization process is complete and a stable version of the specification is released. See #243

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();

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);
// string(96) "pkg:composer/symfony/console@6.3.8?vcs_url=git%2Bhttps://github.com/symfony/console.git%40v6.3.8"

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

Contributing

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