A simple library to work with Uniform Resource Names (URNs).

v2.0.0 2025-04-30 19:18 UTC

This package is auto-updated.

Last update: 2025-04-30 19:24:55 UTC


README

A simple library to work with Uniform Resource Names (URNs) based on the RFC 8141.

GitHub Tag Total Downloads Packagist Version Packagist PHP Version Support Packagist License

Installation

You can install the package via Composer:

composer require standards/urn

Usage

use Standards\URN\NamespaceSpecificString;
use Standards\URN\UniformResourceName;

$urn = UniformResourceName::parse('urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8...');
var_dump($urn->getNamespaceIdentifier());     // ietf
var_dump($urn->getNamespaceSpecificString()); // params:oauth:jwk-thumbprint:sha-256:NzbLsXh8...

$nss = NamespaceSpecificString::parse($urn->getNamespaceSpecificString());
var_dump($nss->getNamespace());    // params
var_dump($nss->getSubNamespace()); // oauth
var_dump($nss->getResource());     // jwk-thumbprint
var_dump($nss->getType());         // sha-256
var_dump($nss->getValue());        // NzbLsXh8...


$nss = NamespaceSpecificString::build(
    value: 'NzbLsXh8...'
);
$nss = NamespaceSpecificString::build()->setValue('NzbLsXh8...');
$urn = UniformResourceName::build('ietf', $nss);
var_dump($urn->toString()); // urn:ietf:params:oauth:jwk-thumbprint:sha-256:NzbLsXh8...

License

Nacosvel Contracts is made available under the MIT License (MIT). Please see License File for more information.