为什么magento中的扩展控制器不同于模型

为什么magento中的扩展控制器不同于模型,magento,controller,extending,Magento,Controller,Extending,我想知道为什么扩展magento控制器的步骤不同于模型或块。为什么不能像覆盖其他magento类一样扩展控制器?在控制器的情况下,为什么我们必须在扩展它的文件中包含类文件?简而言之:这就是Magento的设计方式(不允许像模型、辅助对象和块那样覆盖控制器)。我的意思是他们可以自由设计他们想要的任何东西 在long:中,您始终可以通过工厂方法实例化模型、块、助手,通常是,Mage::getModel('your/Model'),Mage::getBlock('your/Block')和Mage::

我想知道为什么扩展magento控制器的步骤不同于模型或块。为什么不能像覆盖其他magento类一样扩展控制器?在控制器的情况下,为什么我们必须在扩展它的文件中包含类文件?

简而言之:这就是Magento的设计方式(不允许像模型、辅助对象和块那样覆盖控制器)。我的意思是他们可以自由设计他们想要的任何东西

在long:中,您始终可以通过工厂方法实例化模型、块、助手,通常是,
Mage::getModel('your/Model')
Mage::getBlock('your/Block')
Mage::getHelper('module/Helper')
。然而,以这种方式实例化控制器是不可能的


工厂方法Mage::getModel()检查所有配置文件(通常是所有模块的et/config.xml中的文件)以确定重载。然而,控制器类是由路由器根据复杂的多级系统路由确定的。

Dmaza,您只能覆盖帮助器、块、模型类。。。您不能覆盖控制器sclassCheck链接另一个链接类company\u module\u Model\u Mymodel Extendes Mage\u Core\u Model\u Abstract将加载该抽象类。我的问题是,为什么控制器的情况不一样呢?可以尝试基于使用自动加载程序调用的父类加载子类。