แผนภาพคร่าวๆของสถาปัตยกรรมของโครงการขนาดใหญ่ล่าสุดที่ฉันเข้าร่วม
มันเป็นเพียงโครงร่างพื้นฐานที่ดัดแปลงมาจากเอกสารสถาปัตยกรรมที่เกิดขึ้นจริงและนำเสนอในลักษณะที่คล้ายกับเป็นวิธีการปกติ n ชั้นรวมกับโดยทั่วไปวิธีการ MVC ในขณะที่คุณสามารถดูตรรกะและระดับข้อมูลที่เชื่อมต่อผ่านชั้นบริการและโดยเฉพาะอย่างยิ่งREST APIที่ได้รับแรงบันดาลใจจากRecessซึ่งเป็นกรอบ PHP ที่รู้จักกันน้อย
อย่าประดิษฐ์ล้อใหม่
ฉันทำงานกับสามเฟรมเวิร์ค:
Zend Framework
พฤติกรรมของเฟรมเวิร์ก PHP พร้อมโค้ดเบสที่เขียนได้อย่างน่าประทับใจและรายการคุณสมบัติมากมาย ในแอปพลิเคชั่นขนาดใหญ่คุณจะพบว่าตัวเองปรับเปลี่ยนเฟรมเวิร์กบ่อยขึ้นกว่าเดิมและฉันพบว่า codebase ของ ZF เป็นวิธีที่น่าใช้ที่สุด แต่ระวังไม่ใช่กรอบการทำงานระดับเริ่มต้น
Kohana
โคฮาน่าเริ่มต้นจากการแยกตัวของ CodeIgniter และนั่นเป็นเหตุผลที่เพียงพอสำหรับฉันที่จะไม่ใช้มันในตอนแรก ทุกวันนี้มันได้เติบโตขึ้นเป็นกรอบการทำงานที่มั่นคงและสง่างามที่แตกต่างจากทุกอื่น ๆ โดยต่อไปนี้วิธีการลำดับชั้น MVC HMVC ช่วยให้มากขึ้นขยายของ modularization กว่า MVC สำหรับโครงการในแผนภาพฉันปรับ HMVC ของ Kohana เป็น ZF แต่ฉันเริ่มใช้ Kohana สำหรับโครงการขนาดเล็กและพิจารณาให้ใหญ่ขึ้นเช่นกัน
CodeIgniter
ฉันใช้เพียงเพราะโครงการดั้งเดิมที่ฉันสืบทอดให้หลีกเลี่ยงถ้าเป็นไปได้
ตามที่คำตอบอื่น ๆ ชี้ให้เห็นว่า ORM มักจะมีประโยชน์เสมอ ผมใช้หลักคำสอนอย่างกว้างขวางและคุณควรจะดูที่มันทำแผนที่ใหม่สำหรับCouchDBและMongoDB scalability เป็นต้องในการใช้งานขนาดใหญ่และคุณควรประเมินโซลูชั่น NoSQL
ทั้งหมดที่กล่าวมาสิ่งสำคัญที่ต้องจำไว้คือแอปพลิเคชันขนาดใหญ่มักจะมีความท้าทายที่ไม่ซ้ำกัน คุณควรประเมินวิธีแก้ปัญหาของบุคคลที่สามที่เป็นที่นิยมและคุณอาจจะได้รับประโยชน์มากมายจากสิ่งที่คลุมเครือ เมื่อฉันประเมินผล Recess เป็นครั้งแรกมันไม่ไกลจากการผลิตพร้อม แต่วิธีการของมันทำให้มันเป็นโครงการ
ประสิทธิภาพ
บนเว็บไซต์โดยทั่วไปคุณอาจได้รับไปกับแคผลลัพธ์ที่เรียบง่ายและแคช opcodeแต่ในการใช้งานขนาดใหญ่ที่คุณควรพิจารณาแคชหน่วยความจำที่มากที่สุดคือการสร้างรอบmemcached
xdebugส่วนใหญ่รู้จักกันในชื่อดีบักเกอร์ แต่สามารถใช้เป็นprofiler ได้เช่นกัน ผมได้เริ่มต้นเมื่อเร็ว ๆ นี้โดยใช้Zend เซิร์ฟเวอร์และฉันอย่างรักของคุณสมบัติรหัสติดตาม น่าเสียดายที่ไม่มีในCommunity Editionแต่ xdebug เป็นตัวเลือกที่เหมาะสม
หากคุณใช้ Apache ตรวจสอบให้แน่ใจว่าได้ปรับนรกให้เหมาะสม เห็นได้ชัดว่าnginxและlighttpdเป็นตัวเลือกที่ดีกว่าประสิทธิภาพการทำงานที่ชาญฉลาด แต่ฉันไม่ได้ใช้พวกเขามากและฉันไม่สามารถพูดได้
ในฐานะที่เป็นฐานข้อมูลหลักคำสอนของแบบสอบถามและผลแคชงานมหัศจรรย์โดยเฉพาะอย่างยิ่งรวมกับmemcached และแน่นอนเราไม่สามารถลืมส่วนหน้าได้ ทีมงานเจ๋ง ๆของ Yahoo ได้รวบรวมรายการแนวปฏิบัติที่ดีที่สุดมากมาย ฉันไม่ใช่นักพัฒนาที่แท้จริง แต่ฉันได้เห็นผลลัพธ์ที่น่าอัศจรรย์ในโครงการเดี่ยว
สุดท้าย PHP มีกลไกการเก็บขยะใหม่เอี่ยมคุ้มค่าที่จะดู
ความปลอดภัย
โลกของการรักษาความปลอดภัยของ PHP นั้นวุ่นวายพูดน้อยที่สุด ฉันไม่มีผู้เชี่ยวชาญดังนั้นให้ปฏิบัติตามคำแนะนำทั่วไปดังต่อไปนี้:
เปิดโครงการความปลอดภัยของแอปพลิเคชันบนเว็บ
มากของสิ่งที่ดีในการมี แต่สำหรับภาพรวมอย่างรวดเร็วคุณควรเริ่มต้นด้วยสิบรายการด้านบน และวิจัยโซลูชั่น PHP สำหรับช่องโหว่ทั่วไปเหล่านั้น
สแตกช่องโหว่
นิสัยที่ดีคือการตรวจสอบเป็นระยะ ๆของ PHP โรคจิตเปิด แม้ว่าคุณจะไม่ใช่ผู้เชี่ยวชาญ แต่ก็มีคำแนะนำวิธีแก้ปัญหาภัยคุกคามความปลอดภัยเกือบทุกครั้ง และแน่นอนคุณควรขยายนิสัยไปยังส่วนอื่น ๆ ของสแต็คโดยเฉพาะอย่างยิ่งที่มีช่องโหว่มากที่สุดเช่นเว็บเซิร์ฟเวอร์และฐานข้อมูล
ฝูงชนที่IT Security Stack Exchangeสามารถช่วยให้คุณได้คำตอบที่มีการศึกษามากขึ้น
อ่านเพิ่มเติม