php - 如果覆盖另一个模块使用的模块中的类会发生什么

标签 php magento overriding

我正在开发一个模块,我需要覆盖一个 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/

相关文章:

PHP Triple DES ECB 加密/解密的 Java 等效项

php - PDO 连接不显示错误

magento - Magento 类(class)的长度有限制吗?

database - magento 从 1.6.2 升级到 1.7.0.2 - 数据库基础会改变吗?

Java:禁止扩展类中的某些方法?

java - 为什么 Eclipse 在 Override 上给我这个注释错误

objective-c - 如何访问父类中声明的方法?

php - 如何使用 laravel 5.2 获取 Blade 文件(HTML)中的最后一部分 url?

php - 关闭 Ratchet IOServer

magento:从 block 或hlper获取变量到javascript文件中