ความแตกต่างระหว่าง / Controller และ / controllers


43

คำถามที่ฉันหมายถึงการขออายุทฤษฎีมากกว่าสิ่งอื่นใด

ฉันมีประสบการณ์ในการพัฒนาส่วนขยายโดยใช้โครงสร้างไฟล์โมดูล Magento ปกติ ฉันสังเกตว่าเมื่อดูที่ 'ส่วนขยาย' ของ Mage บางรายการนั้นมีไดเรกทอรี / Controller วัตถุประสงค์ของคอนโทรลเลอร์เหล่านี้คืออะไรและแตกต่างไปอย่างไรกับคอนโทรลเลอร์ที่ใช้ตามปกติภายใน / คอนโทรลเลอร์คอนโทรลเลอร์?

ฉันสามารถเห็นชื่อที่มีโครงสร้างแตกต่างกันดังนั้นฉันรวบรวมพวกเขาโดยอัตโนมัติโหลดในวิธีที่แตกต่างกัน แต่มีวัตถุประสงค์อะไร / ชั้นเรียน Controller ทำหน้าที่?

ขอบคุณทุกคน

คำตอบ:


45

ความแตกต่างอยู่ในการโหลดอัตโนมัติตามที่คุณพูดถึง ในไฟล์ทั่วไปที่อยู่ใน / Controller เป็นคลาสAbstract (หรือพาเรนต์) คลาสที่คลาสใน / controllers สืบทอดมา

Magento ไม่ได้ถูกสร้างขึ้นเพื่อให้ตระหนักถึงไดเรกทอรี / Controller - มันเป็นเรื่องของการประชุม ชื่อคลาสบอกตำแหน่งที่จะค้นหาพาเรนต์เหล่านี้บนดิสก์และตัวโหลดอัตโนมัติตั้งอยู่ คุณจะเห็นสิ่งนี้ในMage_Sales:

class Mage_Sales_OrderController extends Mage_Sales_Controller_Abstract

ที่นี่ขายโมดูลควบคุมตั้งอยู่ที่ภายในapp/code/core/Mage/Sales/controllersและควบคุมโหลดพูดกับโหลดเพื่อค้นหามันapp/code/core/Mage/Sales/Controllerปกครองใน

สิ่งนี้ทำเพื่อแยกความกังวลและอนุญาตให้คลาสตัวควบคุมที่เป็นรูปธรรมสืบทอดการทำงานทั่วไป


นั่นทำให้รู้สึกที่สมบูรณ์และตอนนี้คุณได้อธิบายแล้วดูเหมือนจริง ๆ แล้วค่อนข้างชัดเจน! ขอบคุณ Phil!
thebluefox
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.