Різниця між / контролером та / контролерами


43

Питання, яке я мав намір поставити на віки, більш теоретичне, ніж усе інше.

Я повністю розбираюся в розробці розширень, використовуючи звичайну структуру файлів модуля Magento. Я помітив, хоча, переглядаючи деякі "розширення" Mage, що деякі містять каталог / Controller. Яке призначення цих контролерів і чим вони відрізняються від тих, які зазвичай використовуються в режимі / контролери?

Я бачу, що імена структуровані по-різному, тому я збираю їх автоматично завантажуються по-іншому, але якій цілі служать класи / контролери?

Дякую усім

Відповіді:


45

Різниця полягає в автозавантаженні, як ви вже згадували. Загалом файли, що знаходяться в / Controller, - це абстрактні (або батьківські) класи, від яких успадковуються класи в / контролери .

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.

Це робиться, щоб забезпечити відокремлення проблем і дозволити конкретним класам контролерів успадкувати загальну функціональність.


Це має повний сенс, і, зараз ви це пояснили, насправді здається досить очевидним! Дякую Філу!
thebluefox
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.