ข้อดีของการใช้ ORM ที่มีคารมคมคายของ Laravel ผ่านการสืบค้น SQL แบบดิบนั้นมีมากมายและเป็นศูนย์กลางในการผลิตของนักพัฒนาซอฟต์แวร์การอ่านรหัสความสามารถในการบำรุงรักษาและฐานข้อมูลที่เป็นนามธรรม นี่คือประโยชน์โดยละเอียด:
** 1. ปรับปรุงความสามารถในการอ่านและการแสดงออก
ELOOQUENT ช่วยให้นักพัฒนาสามารถเขียนคิวรีฐานข้อมูลโดยใช้ไวยากรณ์ PHP และโมเดลเชิงวัตถุแทน SQL ดิบ สิ่งนี้ส่งผลให้รหัสที่อ่านได้และแสดงออกมากขึ้นซึ่งคล้ายกับภาษาธรรมชาติและตรรกะทางธุรกิจทำให้เข้าใจและรักษาได้ง่ายขึ้นเมื่อเทียบกับสตริง SQL ดิบที่ซับซ้อนซึ่งฝังอยู่ในรหัส [5] [6]
** 2. การจัดการความสัมพันธ์ที่ง่ายขึ้น
ELOOQUENT ให้การสนับสนุนในตัวสำหรับการกำหนดและจัดการความสัมพันธ์ระหว่างตารางฐานข้อมูล (เช่น Hasmany, Belong, Hasone, ความสัมพันธ์แบบ polymorphic) สิ่งนี้ช่วยให้นักพัฒนาสามารถทำงานกับข้อมูลที่เกี่ยวข้องได้อย่างสังหรณ์ใจและดึงข้อมูลที่เกี่ยวข้องด้วยรหัสน้อยที่สุดสิ่งที่ต้องใช้การเข้าร่วมที่ซับซ้อนและ subqueries ใน RAW SQL [3] [6]
** 3. การสลับบริบทลดลง
การใช้คารมคมคายหมายถึงนักพัฒนาอยู่ภายในรหัส PHP โดยไม่ต้องสลับไปมาระหว่าง SQL และ PHP สิ่งนี้จะช่วยลดภาระความรู้ความเข้าใจและเพิ่มความเร็วในการพัฒนาโดยเฉพาะอย่างยิ่งสำหรับผู้ที่คุ้นเคยกับไวยากรณ์ SQL น้อยกว่า [2]
** 4. เพิ่มความสามารถในการบำรุงรักษาและรหัสแห้ง
พูดคุยกันถึงวิธีการแห้ง (อย่าทำซ้ำตัวเอง) โดยอนุญาตให้คำจำกัดความของโมเดลที่เป็นตัวแทนของตารางและห่อหุ้มตรรกะฐานข้อมูล การรวมศูนย์ของตรรกะการโต้ตอบของฐานข้อมูลนี้ทำให้ codebase ง่ายต่อการบำรุงรักษาและ refactor [4]
** 5. การพกพาฐานข้อมูล
เนื่องจากบทคัดย่อที่มีคารมคมคายเลเยอร์ฐานข้อมูลการสลับระบบฐานข้อมูลพื้นฐาน (เช่นจาก MySQL เป็น postgreSQL) ต้องมีการเปลี่ยนแปลงรหัสน้อยที่สุด แบบสอบถาม SQL RAW มักจะมีไวยากรณ์เฉพาะฐานข้อมูลที่ทำให้การย้ายถิ่นยากในขณะที่มีคารมคมคายจัดการกับความแตกต่างเหล่านี้ภายใน [4]
** 6. ผลประโยชน์ด้านความปลอดภัย
ELOOQUENT ป้องกันการโจมตีการฉีด SQL โดยอัตโนมัติโดยใช้พารามิเตอร์ที่มีผลผูกพันภายในลดความเสี่ยงของช่องโหว่ด้านความปลอดภัยที่สามารถเกิดขึ้นกับ SQL ดิบหากไม่ได้รับการจัดการอย่างระมัดระวัง [6]
** 7. การพัฒนาที่เร็วขึ้นสำหรับการดำเนินงานทั่วไป
สำหรับการดำเนินการ CRUD ทั่วไปและการสืบค้นทั่วไป ELOOQUENT ให้วิธีการที่สะดวกที่จะเพิ่มความเร็วในการพัฒนาโดยไม่จำเป็นต้องมีความรู้ SQL ลึก สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับนักพัฒนาใหม่สำหรับฐานข้อมูลหรือผู้ที่ต้องการมุ่งเน้นไปที่ตรรกะของแอปพลิเคชันมากกว่าการเพิ่มประสิทธิภาพแบบสอบถาม [3] [5]
** 8. บูรณาการกับระบบนิเวศ Laravel
Eloquent รวมเข้ากับคุณสมบัติ laravel อื่น ๆ อย่างราบรื่นเช่นการอพยพการเพาะเมล็ดการตรวจสอบและตะขอเหตุการณ์ให้ประสบการณ์การพัฒนาที่เหนียวแน่นที่ SQL ดิบไม่สามารถนำเสนอออกจากกล่อง [4]
** 9. คุณสมบัติขั้นสูงสำหรับการสืบค้นที่ซับซ้อน
ในขณะที่ SQL ดิบบางครั้งจำเป็นสำหรับการสืบค้นที่ซับซ้อนมาก แต่ก็มีคารมคมคายสนับสนุนเทคนิคขั้นสูงเช่นการโหลดที่กระตือรือร้นด้วยข้อ จำกัด การคาดการณ์ย่อยและความสัมพันธ์ที่ซับซ้อน (เช่น Hasmanythrough) ช่วยให้นักพัฒนาสามารถเขียนแบบสอบถามที่ซับซ้อนในวิธีที่สง่างามและบำรุงรักษาได้ [7]
** 10. ความสามารถในการอ่านรหัสและการบำรุงรักษาในสถาปัตยกรรม MVC
มีคารมคมคายพอดีกับรูปแบบ MVC ของ Laravel ซึ่งส่งเสริมการแยกข้อกังวลที่สะอาด โมเดลห่อหุ้มตรรกะฐานข้อมูลคอนโทรลเลอร์จัดการตรรกะแอปพลิเคชันและมุมมองมุ่งเน้นไปที่การนำเสนอ การแยกนี้ช่วยเพิ่มความชัดเจนของรหัสและการบำรุงรักษาเมื่อเทียบกับการฝัง SQL ดิบโดยตรงในคอนโทรลเลอร์หรือมุมมอง [3] [6]
โดยสรุปแล้ว ORM ที่มีคารมคมคายเสนอวิธีที่เป็นมิตรกับนักพัฒนาซอฟต์แวร์การแสดงออกและความปลอดภัยในการโต้ตอบกับฐานข้อมูลใน Laravel ปรับปรุงการอ่านรหัสความสามารถในการบำรุงรักษาและการพกพาในขณะที่เร่งการพัฒนาสำหรับงานทั่วไป SQL ดิบอาจยังคงใช้สำหรับการค้นหาที่สำคัญหรือมีความซับซ้อนสูง แต่มีคารมคมคายครอบคลุมความต้องการแอปพลิเคชันทั่วไปส่วนใหญ่ด้วยความสง่างามและประสิทธิภาพ
การอ้างอิง:
[1] https://laracasts.com/discuss/channels/eloquent/concrete-advantages-of-the-eloquent-orm
[2] https://www.reddit.com/r/laravel/comments/us98hc/hi_im_wondring_when_to_use_eloquent_and_when_to/
[3] https://stackoverflow.com/questions/49105249/laravel-eloquent-orm-vs-query-builder-hich-one-better
[4] https://www.obiikriationz.com/50-laravel-eloquent-orm-functions
[5] https://www.interserver.net/tips/kb/laravel-eloquent-orm/
[6] https://www.linkedin.com/pulse/laravel-eloquent-vs-query-builder-raw-sql-ultimate-guide-adil-nisar-5jshf
[7] https://www.linkedin.com/pulse/advanced-eloquent-techniques-mastering-laravels-orm-complex-imzzf
[8] https://www.reddit.com/r/php/comments/2xrs33/been_working_with_raw_mysql_for_years_why_should/