Magento's Architecture
เบื้องหลังของ Magento คือ zend framework เข้าใจว่าความสัมพันธ์ระหว่าง ทีมผู้สร้าง magento (Varien) กับ Zend Framework (Zend) ค่อนข้างจะใกล้ชิดพอสมควร เพราะ site ใหม่ของ zend framework 1.5 ก็ได้ Varien นี่แหล่ะทำให้
Zend Framework คืออะไร
เป็น PHP framework ตัวนึงในท้องตลาด นอกนั้นก็มี Symfony, CodeIgniter, CakePHP แว่วๆมาว่า Develop ชาวไทยชอบใช้ CakePHP ... แต่ผมกลับอยากเล่น Symfony มากกว่าแฮะ
PHP framework คืออะไีร
เหมือนกับ framwork ทั่วไปที่เป็นโครงสร้างสิ่งแวดล้อมที่กำหนดไว้แล้วก็จะรวมเอา library ที่จำเป็นและใช้บ่อยมาไว้ด้วยกันเพื่ออำนวยความสะดวกในการสร้าง web application ซึ่ง Framework ส่วนใหญ่ก็จะเป็น Model View Controller (MVC) ด้วย โดยจะแยก ข้อมูล, ตัวโปรแกรม,หน้าตา ออกจากกัน (data model, business rules, user interface.)
กลับมาที่ Zend Framework
โครงสร้างของ zend framework ก็อารมณ์ประมาณนี้ (รูปจาก Andi on Web & IT)
จริงแล้วถ้าแค่ใช้งาน Magento ก็ไม่จำเป็นต้องล้วงลึกไปถึง Zend Framework ก็ได้ แต่ถ้าจะพัฒนาโมดูล หรือสร้าง Template เอง รู้โครงสร้างของ Zend Framework ไว้บ้างก็ดี
โครงสร้างของ Magento
หลักๆก็ประกอบด้วย Core กับ Extensions
Core ประกอบด้วย
- Local - พัฒนาโดย Magento team เอง
- Community - พัฒนา core จากชุมชน
Extensions ประกอบด้วย
- Module
- Interface
- Theme
- Block

ดูเรื่อง Theme ก่อน
Theme จะอยู่ภายใต้ Interface โดยที่ ใน 1 Interface จะมี Theme ชื่อ default อยู่ 1 Theme เป็นอย่างน้อย
แต่ละ Theme ก็จะประกอบด้วย
- Layouts - เป็น XML files ที่เอาไว้กำหนด โครงสร้างหลักของแต่ละหน้า ไฟล์จะอยู่ที่ /app/design/frontend/default/default/layout
- Templates - เป็น PHTML files (มาจาก XHTML กับ PHP tag) เอาไว้กำหนดการแสดงผลที่กำหนด logic ในการแสดงผลได้ อารมณ์ก็เหมือน Smarty ที่ใส่ tag PHP ได้น่ะแหล่ะ
- Skins - เป็น CSS, Javascript files
ตัวอย่างของ Tamplate Structure ก็ดูํจากรูปได้เลย


2 comments
on 20 May 2008 - 5:30am
on 26 May 2009 - 2:04pm
เป็นบทความที่ดีมากครับ ส่วนตัวยังไม่เคยเขียน php เขียนอยู่อีกฝั่งครับ พอมาเจอตัว magento ก็ดูดีครับ คงต้องหาเวลามานั่งดูสักนิด
Post new comment