Sqids ( произносится как «кальмары» ) — небольшая библиотека, позволяющая генерировать уникальные идентификаторы из чисел . Это полезно для сокращения ссылок, быстрого и безопасного создания идентификаторов URL-адресов и обратного декодирования в числа для более быстрого поиска в базе данных.
Функции:
Подходит для:
Не подходит для:
Требуется, чтобы этот пакет вместе с Composer находился в корневом каталоге вашего проекта.
composer require sqids/sqids
Затем вы можете импортировать класс в свое приложение:
use Sqids Sqids ;
$ sqids = new Sqids ();
Важный
Для работы Sqids требуется расширение bcmath
или gmp
.
Простое кодирование и декодирование:
$ sqids = new Sqids ();
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Примечание
? Благодаря конструкции алгоритма несколько идентификаторов могут декодироваться обратно в одну и ту же последовательность чисел . Если для вашего проекта важно, чтобы идентификаторы были каноническими, вам придется вручную перекодировать декодированные числа и проверить соответствие сгенерированного идентификатора.
Установите минимальную длину идентификаторов:
$ sqids = new Sqids (minLength: 10 );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "86Rf07xd4z"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Рандомизируйте идентификаторы, предоставив собственный алфавит:
$ sqids = new Sqids (alphabet: ' FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE ' );
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "B4aajs"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Запретите появление определенных слов где-либо в автоматически сгенерированных идентификаторах:
$ sqids = new Sqids (blocklist: [ ' 86Rf07 ' ]);
$ id = $ sqids -> encode ([ 1 , 2 , 3 ]); // "se8ojk"
$ numbers = $ sqids -> decode ( $ id ); // [1, 2, 3]
Массачусетский технологический институт