Magento 1.x module conflict 扩展冲突

3 篇文章 0 订阅

Magento 1.x项目做大了后难免会有一些扩展功能是扩展在同一对象上,这样就容易生冲突。2.x版本有namespace,1.x就比较见鬼了,冲突了一般是不会报错的。即便当时不出问题也保不齐哪天你的网站因为刷个缓存就突然挂了或者网站总是很慢或者不稳定之类的。其实很多人诟病magento慢嘛,确实有很明显的瓶颈,但是我觉得只要不是做超级大站很多时候慢是人为原因。绕远了,问题是那么多模块我怎么知道谁冲突了呢?

上工具FireGento_Debug 

安装好后会多出这样一个菜单,点击后会把所有的模块冲突情况列出来,红色的就是不ok的:

找到相应的这2个模块,开始解决办法有三:

一、就是把这2个地方的扩展写到一个里面去,只有一个当然不会冲突了

二、按依赖关系扩展,例如你有2个模块都扩展在同一个Core_Class上面

class Extension_A extends Core_Class
class Extension_B extends Core_Class

 那么我们可以这样让B继承基类,A继承B

class Extension_A extends Extension_B
class Extension_B extends Core_Class

当然不要忘记了把config里面之前的rewrite拿掉大概长这样:

<newsletter>
   <rewrite>
     <subscriber>Extension_A</subscriber>
   </rewrite>
</newsletter>

三、直接声明依赖

需要在模块的安装xml里面声明依赖关系:app/etc/modules/extension_B.xml

<config>
 <modules>
   <Extension_B>
      <depends>
          <Extension_A/>
      </depends>
   </Extension_B>
 </modules>
</config> 

然后扩展关系还是这样

class Extension_B extends Extension_A
class Extension_A extends Core_Class

当然也不要去掉Extension_B的config.xml里面相应的rewrite部分

最后刷新Check rewrites冲突没有了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值