我有一个模块,它将通过执行来使用我的控制器而不是 magento
<routers>
<checkout>
<args>
<modules>
<Some_Thing before="Mage_Checkout">Some_Thing</Some_Thing>
</modules>
</args>
</checkout>
</routers>
在我扩展核心类的类中,我必须明确要求该类。有人知道为什么是这样吗?
我有一个模块,它将通过执行来使用我的控制器而不是 magento
<routers>
<checkout>
<args>
<modules>
<Some_Thing before="Mage_Checkout">Some_Thing</Some_Thing>
</modules>
</args>
</checkout>
</routers>
在我扩展核心类的类中,我必须明确要求该类。有人知道为什么是这样吗?
Magento 自动加载器是一个简单的“用斜线替换下划线”算法。因为 Zend Framework 对它的控制器命名不同,并且因为 Magento 使用 Zend 的一部分并且受到 Zend 在其他方面的启发,所以它的控制器使用 Zend 约定命名并放置在一个controllers
文件夹中,这意味着标准的自动加载例程将不起作用。
它最终会在 Magento 的路由过程中自动包含控制器类,而不是 PHP 自动加载器。相反,有自定义 PHP 代码来处理这个问题。
因此,在路由期间,因为您告诉 Magento 使用您的控制器而不是 Magento 的控制器来处理特定请求,所以它是唯一包含在内的控制器。
最好的猜测是控制器覆盖的请求让最初的开发人员措手不及,虽然他们很高兴陪审团用路由来构建解决方案,但重构控制器自动加载代码并不是优先事项。