Sqids ( pronunciado "calamares" ) es una pequeña biblioteca que le permite generar identificaciones únicas a partir de números . Es bueno para acortar enlaces, generar ID de forma rápida y segura para URL y decodificar nuevamente en números para búsquedas más rápidas en bases de datos.
Características:
Bueno para:
No es bueno para:
Solicite este paquete, con Composer, en el directorio raíz de su proyecto.
composer require sqids/sqids
Luego puedes importar la clase a tu aplicación:
use Sqids Sqids ;
$ sqids = new Sqids ();
Importante
Los Sqids requieren la extensión bcmath
o gmp
para funcionar.
Codificación y decodificación sencilla:
$ sqids = new Sqids ();
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Nota
? Debido al diseño del algoritmo, se pueden decodificar múltiples ID en la misma secuencia de números . Si es importante para su diseño que las identificaciones sean canónicas, debe volver a codificar manualmente los números decodificados y verificar que la identificación generada coincida.
Aplicar una longitud mínima para las identificaciones:
$ sqids = new Sqids (minLength: 10 );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07xd4z"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Aleatorice las identificaciones proporcionando un alfabeto personalizado:
$ sqids = new Sqids (alphabet: ' FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE ' );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "B4aajs"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Evite que aparezcan palabras específicas en cualquier lugar de los ID generados automáticamente:
$ sqids = new Sqids (blocklist: [ ' 86Rf07 ' ]);
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "se8ojk"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
MIT