Sqids ( pronuncia-se "squids" ) é uma pequena biblioteca que permite gerar IDs exclusivos a partir de números . É bom para encurtamento de links, geração de ID rápida e segura para URL e decodificação em números para pesquisas mais rápidas no banco de dados.
Características:
Bom para:
Não é bom para:
Exija este pacote, com o Composer, no diretório raiz do seu projeto.
composer require sqids/sqids
Então você pode importar a classe para sua aplicação:
use Sqids Sqids ;
$ sqids = new Sqids ();
Importante
Sqids requerem a extensão bcmath
ou gmp
para funcionar.
Codificação e decodificação simples:
$ sqids = new Sqids ();
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Observação
? Devido ao design do algoritmo, vários IDs podem ser decodificados novamente na mesma sequência de números . Se for importante para o seu design que os IDs sejam canônicos, você deverá recodificar manualmente os números decodificados e verificar se o ID gerado corresponde.
Imponha um comprimento mínimo para IDs:
$ sqids = new Sqids (minLength: 10 );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07xd4z"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Randomize IDs fornecendo um alfabeto personalizado:
$ sqids = new Sqids (alphabet: ' FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE ' );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "B4aajs"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Evite que palavras específicas apareçam em qualquer lugar nos IDs gerados automaticamente:
$ sqids = new Sqids (blocklist: [ ' 86Rf07 ' ]);
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "se8ojk"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
MIT