Perbedaan antara / Pengendali dan / pengontrol

43

Sebuah pertanyaan yang sudah lama ingin saya tanyakan, lebih teoretis dari yang lain.

Saya sepenuhnya berpengalaman dalam mengembangkan Ekstensi menggunakan struktur file modul Magento normal. Saya perhatikan ketika melihat beberapa 'ekstensi' Mage, bahwa beberapa berisi direktori / Controller. Whats tujuan dari pengontrol ini dan bagaimana perbedaannya dengan yang digunakan secara normal dalam dir / pengontrol?

Saya dapat melihat nama-nama terstruktur secara berbeda, jadi saya mengumpulkan mereka secara otomatis dimuat dengan cara yang berbeda, tetapi tujuan apa yang diberikan kelas-kelas Controller?

Terima kasih semuanya

kotak biru
sumber

Jawaban:

45

Perbedaannya ada di autoloading, seperti yang telah Anda sebutkan. Secara umum file-file yang ada di / Controller adalah kelas Abstract (atau parent) yang darinya kelas-kelas di / controller mewarisi .

Magento tidak dibangun untuk mengetahui direktori / Controller - ini lebih merupakan masalah konvensi. Nama kelas memberi petunjuk di mana menemukan orang tua ini pada disk dan autoloader menempatkan mereka. Anda akan melihat ini di Mage_Sales:

class Mage_Sales_OrderController extends Mage_Sales_Controller_Abstract

Di sini, penjualan modul menempatkan pengendali dalam app/code/core/Mage/Sales/controllersdan controller dimuat mengatakan kepada autoloader untuk menemukan itu orang tua di app/code/core/Mage/Sales/Controller.

Hal ini dilakukan untuk memberikan pemisahan masalah dan untuk memungkinkan kelas pengontrol beton mewarisi fungsi umum.

Philwinkle
sumber
Itu masuk akal, dan, sekarang Anda sudah menjelaskannya, sebenarnya tampak cukup jelas! Phil terima kasih!
thebluefox