Sqids ( تنطق "squids" ) هي مكتبة صغيرة تتيح لك إنشاء معرفات فريدة من الأرقام . إنه مفيد لتقصير الروابط وإنشاء معرف سريع وآمن لعنوان 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]
معهد ماساتشوستس للتكنولوجيا