ArchTechx/Tenancy เป็นแพ็คเกจการเช่าที่ครอบคลุมและยืดหยุ่นที่ออกแบบมาสำหรับแอพพลิเคชั่น Laravel ช่วยให้นักพัฒนาสามารถใช้การเช่าได้หลายครั้งโดยไม่ต้องมีการเปลี่ยนแปลงรหัสที่สำคัญในแอปพลิเคชันที่มีอยู่ซึ่งเป็นวิธีอัตโนมัติและไร้รอยต่อในการจัดการผู้เช่าหลายรายภายในการติดตั้ง Laravel ครั้งเดียว
แพ็คเกจดำเนินการด้วยวิธีการเช่าซื้ออัตโนมัติซึ่งหมายความว่าจะดูแลการกำหนดค่าเฉพาะผู้เช่าเช่นการเชื่อมต่อฐานข้อมูลแคชระบบไฟล์คิวและ Redis เก็บอยู่เบื้องหลัง ระบบอัตโนมัตินี้ช่วยให้นักพัฒนาสามารถแปลงแอพผู้เช่ารายเดียวเป็นแพลตฟอร์ม SaaS ผู้เช่าหลายคนที่มีการแทรกแซงน้อยที่สุดใน codebase
คุณสมบัติที่สำคัญของ ArchTechx/Tenancy รวมถึง:
- การระบุผู้เช่าอัตโนมัติ: ระบุผู้เช่าตามชื่อโฮสต์รวมถึงการสนับสนุนสำหรับโดเมนระดับที่สอง สิ่งนี้ช่วยให้การกำหนดเส้นทางและการสลับบริบทขึ้นอยู่กับโดเมนของผู้เช่าโดยไม่ต้องกำหนดค่าด้วยตนเอง
- ไม่จำเป็นต้องมีการเปลี่ยนแปลงรหัส: การจัดการการเช่าไม่ต้องการให้คุณแก้ไขโมเดลของคุณด้วยลักษณะเฉพาะหรือแทนที่คลาส Laravel Core เช่นแคชหรือที่เก็บข้อมูลด้วยรุ่นที่รับรู้ สิ่งนี้ส่งผลให้เกิดการบูรณาการที่สะอาดซึ่งเคารพการประชุมของ Laravel
-รองรับทั้งรุ่นการเช่าเดี่ยวและหลายฐานข้อมูล: คุณสามารถแยกข้อมูลผู้เช่าตามฐานข้อมูลหรือใช้ฐานข้อมูลที่ใช้ร่วมกันกับรุ่นผู้เช่า สำหรับวิธีการหลายฐานข้อมูลแพ็คเกจนำเสนอลักษณะการกำหนดขอบเขตของโมเดลไปยังฐานข้อมูลผู้เช่าที่เหมาะสมโดยอัตโนมัติ
- สถาปัตยกรรมตามเหตุการณ์: แพ็คเกจถูกสร้างขึ้นรอบ ๆ เหตุการณ์ที่ถูกไล่ออกในระหว่างการกระทำของผู้เช่าตลอดชีวิตเช่นการสร้างการเริ่มต้นและการทำลายล้าง การออกแบบนี้ช่วยให้นักพัฒนาสามารถเชื่อมต่อกับเหตุการณ์เหล่านี้และปรับแต่งพฤติกรรมตามต้องการสร้างระบบที่ขยายได้สูง
- การรวมเข้ากับแพ็คเกจ Laravel อื่น ๆ : ArchTechx/Tenancy รวมเข้ากับแพ็คเกจระบบนิเวศ Laravel อื่น ๆ อย่างราบรื่นรวมถึง Laravel Nova ทำให้ง่ายต่อการจัดการทรัพยากรเฉพาะผู้เช่าจากเครื่องมือที่คุ้นเคย
- การทดสอบ: มันถูกออกแบบโดยคำนึงถึงความสามารถในการทดสอบ แพ็คเกจช่วยให้การทดสอบอย่างละเอียดเกี่ยวกับกระแสการลงทะเบียนผู้เช่าการสลับบริบทของผู้เช่าและการดำเนินการเฉพาะผู้เช่าเพื่อให้มั่นใจว่าการตั้งค่าผู้เช่าหลายคนที่มีเสถียรภาพและเชื่อถือได้
- การแบ่งปันผู้ใช้และทรัพยากร: แพ็คเกจรองรับสถานการณ์ที่ผู้ใช้อาจเป็นของผู้เช่าหลายราย มันมีความสามารถในการซิงค์ทรัพยากรที่อนุญาตให้ซิงโครไนซ์ข้อมูลข้ามฐานข้อมูลผู้เช่าตามความจำเป็น
- การแอบอ้างผู้ใช้: มีคุณสมบัติสำหรับการเลียนแบบผู้ใช้ทำให้ผู้ใช้ผู้ดูแลระบบสามารถเลียนแบบผู้ใช้ผู้เช่าทั่วทั้งระบบเพื่อการดีบักหรือการสนับสนุน
- ความเข้ากันได้ของฐานข้อมูล: ใช้งานได้กับระบบฐานข้อมูลหลายระบบรวมถึง MySQL, PostgreSQL, SQLite และรองรับ schemas postgreSQL นำเสนอความยืดหยุ่นในการแยกข้อมูลผู้เช่า
- โหมดด้วยตนเองและอัตโนมัติ: ในขณะที่โหมดเริ่มต้นจะสลับบริบทโดยอัตโนมัติแพ็คเกจยังรองรับการจัดการการเช่าด้วยตนเองซึ่งนักพัฒนาสามารถระบุบริบทของผู้เช่าได้อย่างชัดเจนหากพวกเขาต้องการควบคุมการเชื่อมต่อฐานข้อมูล
-เต็มไปด้วยคุณสมบัติ: แพ็คเกจถือเป็นคุณสมบัติที่หลากหลายที่สุดในหมู่แพ็คเกจการเช่า Laravel ซึ่งให้เครื่องมือที่หลากหลายนอกกรอบเพื่อครอบคลุมความต้องการ SaaS ทั่วไปเช่นการป้องกันโดเมนการจัดการวงจรชีวิตผู้เช่าและการแยกทรัพยากร
แพ็คเกจดังกล่าวได้รับการยกย่องอย่างสูงในชุมชน Laravel ดูแลดาวกว่า 4,000 ดวงใน GitHub และใช้ในแอพพลิเคชั่นการผลิตจำนวนมากบนแพลตฟอร์มโฮสติ้งต่างๆ มันอยู่ระหว่างการพัฒนาที่ใช้งานอยู่โดยมีการเปิดตัวเป็นประจำและฐานผู้สนับสนุนที่ต้อนรับ
การเปรียบเทียบกับแพ็คเกจการเช่า Laravel อื่น ๆ เช่น Spatie/Laravel-Multitenancy แสดงให้เห็นว่า ArchTechx/Tenancy มีความสามารถในการตั้งค่าอัตโนมัติที่กว้างขึ้นและสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ที่ยืดหยุ่นยิ่งขึ้น สิ่งนี้ทำให้เหมาะสำหรับโครงการที่คาดว่าจะมีข้อกำหนดการเช่าที่ซับซ้อนหรือที่ต้องการการหยุดชะงักน้อยที่สุดของโครงสร้างแอปพลิเคชันที่มีอยู่
โดยทั่วไปแล้วการติดตั้งจะเกี่ยวข้องกับการลงทะเบียนแพ็คเกจผ่านนักแต่งเพลงการเผยแพร่ไฟล์กำหนดค่าและการตั้งค่าเส้นทางและมิดเดิลแวร์ที่รับรู้ผู้เช่า หลังการตั้งค่าผู้เช่าสามารถสร้างขึ้นได้อย่างเป็นโปรแกรมหรือผ่านอินเทอร์เฟซการดูแลระบบและแพ็คเกจจะจัดการสภาพแวดล้อมของผู้เช่าโดยอัตโนมัติในระหว่างการร้องขอแต่ละครั้ง
แพ็คเกจนี้ยังมี API และคู่มือที่มีเอกสารประกอบที่มีเอกสารพร้อมการสนับสนุนชุมชนผ่าน GitHub และช่องทางอื่น ๆ ทำให้สามารถเข้าถึงได้สำหรับผู้มาใหม่และนักพัฒนา Laravel ที่มีประสบการณ์
โดยสรุป ArchTechx/Tenancy เป็นโซลูชันที่มีประสิทธิภาพมีประสิทธิภาพยืดหยุ่นและมีการเช่าอัตโนมัติสูงซึ่งออกแบบมาเพื่อช่วยให้นักพัฒนา Laravel สร้างแอปพลิเคชัน SaaS ที่ปรับขนาดได้ด้วยการปรับเปลี่ยนรหัสน้อยที่สุด โมเดลที่ขับเคลื่อนด้วยเหตุการณ์การสนับสนุนหลายฐานข้อมูลและการรวม Laravel ลึกแยกแยะเป็นตัวเลือกชั้นนำสำหรับโครงการ Laravel ผู้เช่าหลายคน