重写magento的model, block 和controller

Magento的二次开发 , 最重要的一点 ,就是尽量不要修改Magento的核心文件.   一旦修改了magento的核心文件,以后如果要对magento进行升级, 那将是一个恶梦, 同时,也容易造成不同模块间的冲突, 背离magento模块之间低耦合的设计思想。

Magento自身也提供了二次开发模式,即对magento的model, block, controller 进行重写

 

首先, 我们要创建一个新的module, 具体方法可以参见这里

一个新的module是一个独立的模块, 重写magento核心的模块的关键在于, 配置config.xml文件

现在我以重写购物车方法的例子进行讲解

新的模块是 /app/code/local/App/Xcheckout 即(/app/code/local///)

 

配置config.xml文件 ,重写购物车中Onepage的model, block 和controller,配置如下:




0.0.1






/xcheckout/onepage/




Lapss_Xcheckout_Block_Onepage_Payment_Methods





Lapss_Xcheckout_Model_Type_Onepage






standard

Lapss_Xcheckout
xcheckout





xcheckout.xml



 

config.xml详细说明:

  1.指定需要重写的模块具体




/xcheckout/onepage/

 2.针对block的重写




Lapss_Xcheckout_Block_Onepage_Payment_Methods


3.针对model的重写




Lapss_Xcheckout_Model_Type_Onepage


  4.针对contoller的重写




/xcheckout/onepage/



standard

Lapss_Xcheckout
xcheckout


5.新模块的布局文件




xcheckout.xml



注意:你需要把这个模块的所有Controller都重写,这可能会带来很大的麻烦, 为了避免这个问题,config.xml可以采用以下方法:

把以下代码

  


/xcheckout/onepage/

替换成




App_Onepage/onepage
true

App_Onepage/onepage




你可能感兴趣的:(magento)