PHP เป็นเครื่องมือที่ยอดเยี่ยม มันอาจจะเรียบง่ายหรือซับซ้อนก็ได้ โครงการที่แตกต่างกันควรใช้ PHP ที่แตกต่างกัน
โปรเจ็กต์ขนาดเล็ก - PHP ที่เรียบง่ายและตรงไปตรงมา
โดยทั่วไปแล้ว สำหรับเว็บไซต์ที่มีเพจการทำงานน้อยกว่า 20 เพจ เราสามารถใช้โครงสร้างเฟรมเวิร์กที่เรียบง่ายในการเขียนได้ ในระดับนี้ ฉันขอแนะนำให้ใช้วิธีการเข้ารหัสที่เน้นกระบวนการโดยตรงมากกว่า เหตุผลนั้นง่ายมาก ไม่จำเป็นต้องสร้างไฟล์คลาส N หลายไฟล์ ด้วยเหตุนี้ จึงมีเพียงหนึ่งไฟล์ใหม่ในคอนโทรลเลอร์ แน่นอนว่าโครงการที่มีข้อกำหนดที่เปลี่ยนแปลงบ่อยครั้งจะไม่รวมอยู่ด้วย
ในระดับนี้ ข้อดีของ PHP นั้นชัดเจน: การพัฒนาอย่างรวดเร็ว ชัดเจนในทันที ข้อบกพร่องยังถูกซ่อนไว้อย่างดี
โปรเจ็กต์ขนาดกลาง - OO PHP ที่มีโครงสร้างสวยงาม
สำหรับโปรเจ็กต์ขนาดกลาง ฉันแนะนำให้ใช้เฟรมเวิร์กที่ออกแบบมาอย่างดี เฟรมเวิร์กนี้สามารถอิงตามโมเดล MVC และสรุปการดำเนินการพื้นฐานหลายอย่าง แน่นอนว่า ต้องมีสิ่งที่ดีที่สุด สิ่งที่ดีที่สุดคือกลไกแคชที่โปร่งใส เพื่อให้กลไก OO ที่เราเพิ่มเพื่อปรับให้เข้ากับการเปลี่ยนแปลงสามารถทำงานได้เร็วขึ้นและดีขึ้น
ในระดับนี้ ข้อบกพร่องของ PHP เริ่มปรากฏให้เห็น เช่น การสนับสนุน OO ที่ไม่สมบูรณ์ (PHP5 นี้ได้รับการปรับปรุงอย่างมาก) และโหมดเธรดเดียวเท่านั้น นอกจากนี้ เครื่องมือต่อพ่วงบางอย่างเริ่มขาดการสนับสนุน ตัวอย่างเช่น PHP ไม่มีเครื่องมือการปรับโครงสร้างที่ดี และไม่มีเครื่องมือทดสอบหน่วยที่ดีที่รวมอยู่ใน IDE ข้อดีคือการพัฒนาอย่างรวดเร็วแบบดั้งเดิมและทรัพยากรโอเพ่นซอร์สที่มีอยู่มากมาย
โปรเจ็กต์ขนาดใหญ่ - PHP ที่ขยายและปรับให้เหมาะสม
โปรเจ็กต์ขนาดใหญ่ในที่นี้หมายถึงโปรเจ็กต์แบบกระจาย กล่าวคือ โปรแกรมของคุณต้องถูกปรับใช้บนเซิร์ฟเวอร์ N ในระดับนี้ PHP ยังขาดการสนับสนุนอย่างมากเมื่อเทียบกับ j2ee ฉันได้พูดคุยโดยละเอียดกับ Shadow บน 735 ปัญหาบางอย่างที่ต้องแก้ไขหากใช้ PHP ในระบบขนาดใหญ่ แน่นอนว่าปัญหาเหล่านี้ไม่ได้เป็นเพียงปัญหาเกี่ยวกับภาษา PHP เท่านั้น แต่ยังรวมถึงปัญหาเกี่ยวกับการพัฒนาโดยรอบด้วย:
1 การแชร์โค้ดเพจ PHP, PHP หลังจากที่ซอร์สโค้ดถูกโหลดลงในหน่วยความจำหนึ่งครั้ง โค้ดนั้นจะยังคงอยู่ในนั้น - ซึ่งสามารถทำได้ด้วยเครื่องมือเพิ่มประสิทธิภาพของ APC และ Zend
2 การแชร์ออบเจ็กต์ข้อมูลระหว่างหน้า PHP สามารถใช้ออบเจ็กต์ข้อมูล เช่น อาร์เรย์ ได้โดยใช้การแชร์ หน่วยความจำหรือ memcached เพื่อจัดการ
3 พูลการเชื่อมต่อฐานข้อมูล PHP เนื่องจากในกรณีที่มีหลายส่วนหน้า PHP ไม่สามารถควบคุมการเชื่อมต่อกับฐานข้อมูลได้ ดังนั้นจึงจำเป็นต้องสร้างพูลการเชื่อมต่อหน้าฐานข้อมูล ซึ่งคล้ายกับ sqlrelay นอกจากนี้การแคชข้อมูลยังมีความสำคัญมากอีกด้วย มีเคล็ดลับสำหรับการพัฒนาที่มีแรงกดดันสูง กล่าวคือ อย่าแตะต้องฐานข้อมูลหากทำได้
4 ระบบแคชส่วนหน้า PHP กลไกแคชที่โปร่งใสและควบคุมได้เพื่อให้แน่ใจว่าหน้าของเว็บไซต์สืบค้นฐานข้อมูลจำนวนครั้งน้อยที่สุด มีการใช้งานหลายอย่าง แต่ฉันไม่พบวิธีที่ดีเป็นพิเศษ
5. หลังจากที่แอปพลิเคชัน PHP แก้ไขปัญหาเหล่านี้ได้สำเร็จ จะไม่มีปัญหาในการรับมือกับแรงกดดันที่เพิ่มมากขึ้นเล็กน้อย
ในระดับนี้ สิ่งสำคัญคือต้องรวม PHP, Java, C++, python และอื่นๆ เข้าด้วยกันเพื่อทำให้เป็นระบบที่มีประสิทธิภาพ เราสามารถใช้ memcached สำหรับการจัดการหน่วยความจำแบบกระจาย Lucene สำหรับการดึงข้อความแบบเต็ม และคอนเทนเนอร์ ejb เพื่อวางองค์ประกอบตรรกะทางธุรกิจบางส่วน PHP ทำหน้าที่เป็นกาวระหว่างส่วนหน้าและระบบเพื่อเชื่อมโยงสิ่งเหล่านี้เข้าด้วยกันอย่างรวดเร็วและยืดหยุ่น