我买了两个magento扩展(我们称它们为A和B),每一个都做一个特定的任务,但我希望它们一起工作来做我想要的。
这里有四种方法:
- 改变A的代码与B一起工作
- 更改B的代码以与A一起工作
- 更改B和A的代码以协同工作
- 开发扩展C做a和B之间的桥梁
最后一个似乎是最好的,但这只是理论上的,因为在实践中我们知道它从来没有那么容易。第一个和第二个似乎很好,因为我只改变一个扩展,但如果我改变的是更新?我的代码将被覆盖,我将不得不将上一个版本与新版本合并,并在每次出现新的更新时重新进行该过程。
事实上,我是Magento的新手,我不确定从哪里开始,以及如何处理。你们有没有建议我应该做什么,不应该做什么?就像在所有业务中一样,我想在拥有完美的代码和在代码上花费太多时间之间找到一个平衡点。
您有三个选择来解决冲突:
- 将一个冲突文件中的代码合并到另一个文件中,并在一个 中关闭重写config.xml
- 在一个config.xml中关闭重写,然后让冲突的扩展名PHP文件扩展另一个扩展名
- 使用
<depends>
功能使一个扩展依赖于另一个扩展。然后他们会按照这个顺序重写
示例(选项# 2)
class A_Extension_Model_Type_Onepage extends Mage_Checkout_Model_Type_Onepage
可以改成:
class A_Extension_Model_Type_Onepage extends B_Extension_Model_Type_Onepage
参见Magento中多个模块覆盖同一个核心文件