为什么magento不自动加载父类

时间:2011-09-20 20:06:22

标签: magento magento-1.5

我有一个模块可以通过

使用我的控制器而不是magento
<routers>
  <checkout>
    <args>
      <modules>
        <Some_Thing before="Mage_Checkout">Some_Thing</Some_Thing>
      </modules>
    </args>
  </checkout>
</routers>

在扩展核心类的类中,我必须明确要求该类。有谁知道这是为什么?

1 个答案:

答案 0 :(得分:12)

Magento自动加载器是一个简单的“用斜线替换下划线”算法。因为Zend Framework以不同的方式命名它的控制器,并且因为Magento使用Zend的部分并且受到Zend的启发,所以它的控制器以Zend约定命名并放在controllers文件夹中,这意味着标准自动加载例程将不起作用。

它最终会在Magento的routing process中自动包含控制器类,但不会由PHP自动加载器包含。相反,有自定义PHP代码来处理这个问题。

因此,在路由期间,因为您告诉Magento使用您的控制器而不是Magento的控制器来处理特定请求,所以它是唯一包含的控制器。

最好的猜测是,对控制器覆盖的请求让原始开发人员措手不及,尽管他们很乐意陪审团设置路由解决方案,但重构控制器自动加载代码并不是优先考虑的问题。