ในการใช้แพ็คเกจการอนุญาต Spatie Laravel ได้อย่างมีประสิทธิภาพจำเป็นต้องมีการกำหนดค่าและขั้นตอนการตั้งค่าที่เฉพาะเจาะจงหลายขั้นตอน:
การติดตั้งและเผยแพร่
- ติดตั้งแพ็คเกจผ่านนักแต่งเพลง: `นักแต่งเพลงต้องการ spatie/laravel-permission`
- เผยแพร่ไฟล์การโยกย้ายและการกำหนดค่าโดยใช้คำสั่ง Artisan:
`ผู้ขาย Artisan PHP: เผยแพร่ -provider =" Spatie \ Permission \ PermissionserviceProvider "`
- เรียกใช้การอพยพเพื่อสร้างตารางที่จำเป็น (`บทบาท ',` สิทธิ์', `model_has_permissions ',` model_has_roles`, `role_has_permissions') ในฐานข้อมูล
การกำหนดค่าโมเดลผู้ใช้
- โมเดลผู้ใช้ (หรือโมเดลที่ถูกต้องใด ๆ ที่คุณต้องการกำหนดบทบาท/การอนุญาตให้) ต้องใช้ลักษณะ `hasroles` 'ที่ได้รับจากแพ็คเกจ สิ่งนี้ช่วยให้การจัดการบทบาทและการอนุญาตในรูปแบบ
การปรับแต่งไฟล์การกำหนดค่า
- แพ็คเกจเผยแพร่ไฟล์ `config/permission.php` ที่คุณสามารถปรับแต่งการตั้งค่าเช่นชื่อตารางการตั้งค่าแคชและคลาสรุ่น
- หากคุณใช้ UUIDS แทน ID ที่เพิ่มกำลังอัตโนมัติคุณต้องปรับการย้ายถิ่นและอาจเป็นไฟล์กำหนดค่าก่อนที่จะเรียกใช้การย้ายถิ่น
-สำหรับการตั้งค่าหลายผู้เช่าหรือแบบทีมคุณต้องเปิดใช้งานและกำหนดค่าคุณสมบัติ "ทีม" ในไฟล์กำหนดค่า
การกำหนดค่าแคช
- แพ็คเกจใช้การแคชเพื่อเพิ่มประสิทธิภาพการค้นหาการอนุญาต โดยค่าเริ่มต้นการหมดอายุแคชจะถูกตั้งค่าเป็น 24 ชั่วโมง
- คุณสามารถปรับแต่งแคชที่เก็บคำนำหน้าและเวลาหมดอายุใน `config/permission.php` ภายใต้อาร์เรย์` cache`
- ในสถานการณ์หลายผู้เช่าขอแนะนำให้ตั้งค่าคำนำหน้าแคชที่ไม่ซ้ำกันเพื่อหลีกเลี่ยงการปะทะ
- หากแอปของคุณสลับผู้เช่าในระหว่างการร้องขอครั้งเดียวคุณอาจต้องใช้แคชการอนุญาตใหม่ด้วยตนเอง
มิดเดิลแวร์
- เพื่อปกป้องเส้นทางตามบทบาทหรือการอนุญาตให้ลงทะเบียนนามแฝงมิดเดิลแวร์ของแพ็คเกจ (`บทบาท ',' อนุญาต ',` role_or_permission') ในเคอร์เนล HTTP หรือการกำหนดค่ามิดเดิลแวร์ของคุณ
การปรับแต่งขั้นสูง
- คุณสามารถขยายบทบาทและโมเดลการอนุญาตของแพ็คเกจหากคุณต้องการปรับแต่งพฤติกรรม แต่คุณต้องระมัดระวังในการอัปเดตไฟล์กำหนดค่าเพื่อชี้ไปที่โมเดลที่คุณกำหนดเอง
- การเปลี่ยนชื่อตารางฐานข้อมูลเริ่มต้นต้องมีการอัปเดตไฟล์ config และอาจเป็นการย้ายถิ่น
- สำหรับการสนับสนุน UUID หรือกรณีการใช้งานขั้นสูงอื่น ๆ ให้ทำตามส่วนเอกสารขั้นสูงของแพ็คเกจ
โดยสรุปการกำหนดค่าคีย์เกี่ยวข้องกับการเผยแพร่และปรับแต่งไฟล์กำหนดค่าเพิ่มลักษณะ `hasroles` ในโมเดลผู้ใช้ของคุณการทำงานการอพยพการกำหนดค่าการแคชอย่างถูกต้องและการตั้งค่าการสนับสนุนมิดเดิลแวร์และผู้เช่าหลายคน การทำตามขั้นตอนเหล่านี้ทำให้มั่นใจได้ว่าแพ็คเกจ Spatie จะทำงานได้อย่างมีประสิทธิภาพในแอปพลิเคชัน Laravel ของคุณ [1] [2] [6] [8] [9]
การอ้างอิง:
[1] https://spatie.be/docs/laravel-permission/v6/installation-laravel
[2] https://spatie.be/docs/laravel-permission/v6/prerequisites
[3] https://spatie.be/docs/laravel-data/v4/requirements
[4] https://packagist.org/packages/spatie/laravel-settings
[5] https://spatie.be/docs/laravel-html/v3/installation-setup
[6] https://www.honeybadger.io/blog/laravel-permissions-roles/
[7] https://github.com/spatie/laravel-slack-alerts/discussions/22
[8] https://github.com/spatie/laravel-permission/blob/main/docs/advanced-usage/cache.md
[9] https://www.allphptricks.com/laravel -11-spatie-user-roles-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the-spatie-role-model-but-use-a-different-database-table