Sqids ( ออกเสียงว่า "squids" ) เป็นไลบรารีขนาดเล็กที่ให้คุณ สร้าง ID ที่ไม่ซ้ำใครจากตัวเลข เหมาะสำหรับการย่อลิงก์ การสร้าง ID ที่รวดเร็วและปลอดภัย 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]
บันทึก
- เนื่องจากการออกแบบของอัลกอริธึม ID หลายตัวจึงสามารถถอดรหัสกลับเป็นตัวเลขลำดับเดียวกันได้ หากเป็นสิ่งสำคัญต่อการออกแบบของคุณที่ ID เป็นแบบบัญญัติ คุณจะต้องเข้ารหัสตัวเลขที่ถอดรหัสอีกครั้งด้วยตนเอง และตรวจสอบว่า ID ที่สร้างขึ้นตรงกัน
บังคับใช้ความยาว ขั้นต่ำ สำหรับรหัส:
$ 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]
เอ็มไอที