我正在开发一个模块,我需要覆盖一个 block 文件以添加新功能。我知道如何覆盖 block 、模型和 Controller ,但我想知道如果我扩展的类被使用会发生什么由另一个模块类?
以上场景如下:
在我的模块 config.xml 中,我覆盖了一个 block 文件:
<blocks>
<checkout>
<rewrite>
<cart_shipping>Company_Module_Block_Cart_Shipping</cart_shipping>
</rewrite>
</checkout>
</blocks>
并覆盖一个方法getEstimateRates()
但是还有另一个模块,其 block 文件扩展 Mage_Checkout_Block_Cart_Shipping
。我的问题是 -
"Will that class be able to see the changes made in the overridden class in my module?"
或
"Do I have to override the other modules block file?"
最佳答案
你的一个或另一个扩展 block 将不起作用。它可以通过扩展你的或其中一个的另一个 block 来修复。
例如 Company_Module_Block_Cart_Shipping
是您的 block ,Other_Module_Block_Cart_Shipping
是其他 block 。
如果 Other_Module_Block_Cart_Shipping
从核心扩展,您必须从 Other_Module_Block_Cart_Shipping
扩展您的 Company_Module_Block_Cart_Shipping
关于php - 如果覆盖另一个模块使用的模块中的类会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23888451/