定制 rguezque/ark-generator 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rguezque/ark-generator

最新稳定版本:v1.0.0

Composer 安装命令:

composer require rguezque/ark-generator

包简介

Sencillo generador de identificadores ARK

README 文档

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. Es un string que sirve a su vez como cabecera del prefijo a generar. El usuario lo define.
  • Una máscara. Es una cadena betanumérica que le dice al generador como formar el blade (Que se agrega al final del shoulder).

Juntos forman el sufijo del ark.

// index.php
declare(strict_types = 1);

use rguezque\ArkGenerator\ArkGenerator;

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

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

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',
    'bow' => 'ark:68066',
    'shoulder' => 'p3',
    'blade' => 'f8j491xk',
    'suffix' => 'p3f8j491xk',
    'identifier' => '68066/p3f8j491xk',
    'full_scheme' => 'ark:68066/p3f8j491xk',
    'created_at' => '1763060594'
];

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

Note

Evita utilizar el NAAN 99999, y el shoulder fk, ya que son considerados por lo regular como identificadores de prueba. Si el shoulder contiene guiones (-) estos serán ignorados. Ej. x3-k se convertirá a x3k. Por convención de ARK, todo se generará en minúsculas.

Acerca de 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.
  • c: Genera una letra del alfabeto consonántico omitiendo la letra l (ele) para evitar confusiones con el número 1 (bcdfghjkmnpqrstvwxyz).
  • b: Genera un caracter betanúmerico (bcdfghjkmnpqrstvwxz0123456789).
  • s: Genera un caracter especial (=~*+@_$). Se omite : y / porque están reservados por el resolutor (resolver).

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

统计信息

  • 总下载量: 3
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-14