rguezque/ark-generator

Sencillo generador de identificadores ARK

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:api

pkg:composer/rguezque/ark-generator

v1.0.0 2025-11-14 04:29 UTC

This package is auto-updated.

Last update: 2025-11-14 04:37:30 UTC


README

Un sencillo generador de identificadores ARK (Archival Resource Key). También puede utilizarse para generar identificadores DOI, URN o Handle.

Generar un identificador ARK

Para empezar crea una instancia de la clase Generator la cual recibe dos argumentos:

  • El número NAAN. Un identificador único asignado por ARK Alliance.
  • El esquema del identificador. En este caso por default es ark; sin embargo tambien puede especificarse como doi, urn o hdl (Handle)

Después ejecuta el método ArkGenerator::generate el cual recibe dos argumentos:

  • Un shoulder prefix. Es un string que sirve a su vez como prefijo, del prefijo a generar. El usuario lo define.
  • Una máscara. Es una cadena alfabética que le dice al generador como formar el shoulder suffix (Es a su vez el sufijo del prefijo a conformar).
// index.php
declare(strict_types = 1);

use rguezque\ArkGenerator\ArkGenerator;

require __DIR__.'/vendor/autoload.php';

$gen = new ArkGenerator('68066');
$result = $gen->generate('p3  ', 'aaadaaadk');

echo print_r($result, true);

Ejecuta desde la terminal:

php ./index.php

Esto devolvera un array con los datos resultantes, en una estructura como la siguiente:

[
    'scheme' => 'ark',
    'prefix' => '68066',
    'shoulder_prefix' => 'p3',
    'shoulder_suffix' => 'it81so08k',
    'suffix' => 'p3it81so08k',
    'identifier' => '68066/p3it81so08k',
    'identifier_length' => '17',
    'full_scheme' => 'ark:68066/p3it81so08k',
    'created_at' => '1763060594'
];

Si se prefiere definir un shoulder prefix explicitamente por el usuario, utiliza el método ArkGenerator::setShoulderPrefix antes de invocar ArkGenerator::generate. Restablece el shoulder prefix a null con ArkGenerator::resetShoulderPrefix.

Note

Evita utilizar el NAAN 99999, ni el shoulder prefix fk, ya que son considerados por lo regular como identificadores de prueba. Si el shoulder prefix contiene guiones (-) estos serán ignorados. Ej. x3-k se convertirá a x3k.

Sobre la mascara para generar los sufijos

Al momento de generar un sufijo, el método ArkGenerator::generate necesita un string que sirve como una mascara que permite definir como se formara el sufijo del ARK; a continuación el significado de cada caracter o flag que puede formar una mascara:

  • d: Genera un número entero entre el 0 y el 9.
  • l: Genera una letra del alfabeto (se omite la ñ) en minúsculas (a-z).
  • u: Genera una letra del alfabeto (se omite la Ñ) en mayúsculas (A-Z).
  • a: Genera un caracter alfanúmerico (se omite la ñ) (0-9, a-z,).
  • e: Genera un caracter alfanúmerico extendido (se omite la ñ y la Ñ) (0-9, a-z, A-Z).
  • s: Genera un caracter alfanúmerico extendido incluyendo algunos caracteres especiales (se omite la ñ y la Ñ) (0-9, a-z, A-Z, =~*+@_$).

Las flags con case-sensitive y cualquier otra letra que no sea una flag, se asignará directamente al prefijo resultante en el orden en que haya sido definida.

Documentación adicional

Sobre el esquema del identificador ARK

Sobre el esquema DOI