magento开发的核心代码结构

  在使用magento的过程中,几乎没有人会一成不变的使用magento框架所自带的功能,无论什么项目几乎都会有多多少少在功能上的变化需求,如添加一个新的功能,或者重写现有的功能模块。但是如果我们直接修改magento开发的核心代码结构,这是一个非常不好的习惯,而且我们也不推荐开发者这样来做。因此magento为大家提供了一系列非常好的方式方法来重写或者覆盖现有的方法。

  我们在上一篇文章中已经提到了如何来重写一个model,但是如果我们有需求来重写helpers,blocks或者controllers(包括前台controller和后台controller),怎么办?下面我们来介绍一下如何来重写magento的blocks, models, helpers ,controllers。

  1,重写magento blocks。 我们从重写magento核心block标签开始,例如重写Mage_Tag_Block_Product_List 类,我们想在这里添加我们自己的类,并且拓展当前的核心类目以及方法。

  之后,在当前模块中新建block文件,app/code/community/Magease/Tag/Block/Product/List.php

  同理,我们可以用相同的规则来实现对Mage_Adminhtml_Block_Tag_Edit 类的重写。

  按照如上配置文件中的类名,新建app/code/community/Magease/Tag/Block/Adminhtml/Tag/Edit.php文件,

  2.重写magento helpers 按照相同的规则我们来重写magento的helper类。

  接下来我们新建helper类文件,app/code/community/Magease/Tag/Helper/Data.php

  3.重写magento models 我们在上一篇文章中讲到了如何来重写magento models,但是resource类和collection 类如何来从写呢?与重写model类同理,resource类和collection类也可以很容易的重写掉。

  下面到模块中新建如下文件:

  app/code/community/Magease/Tag/Model/Tag.php

  app/code/community/Magease/Tag/Model/Resource/Tag.php

  app/code/community/Magease/Tag/Model/Resource/Tag/Collection.php.

  需要注意的是,在这里我们重写这三个类,只是为了演示给开发者看,具体到现实环境中,还需要根据自身的项目需求来重写你需要的类即可。

  4.重写magento controllers

  重写magneto controller跟我们之前看的这些重写models,重写blocks,重写helpers都有很大得区别,那么如何来重写magneto的控制器呢,以Mage_Tag模块为例,下面我们来看一下如何重写magento controller,首先先看config.xml文件。

  你是否注意到了,我们在这里并没有定义一些文件,我们在这里只是定义了一个路径,这个路径可以通过名字来找到controllers的类文件。所以如果你想重写app/code/core/Mage/Tag/controllers/TagController.php这个控制器,我们应该在app/code/community/Magease/Tag/controllers/TagController.php下创建一个一模一样名字的控制器文件。 这里在文件中的写法也是跟其他文件的重写方法不一样,如:

  重写adminhtml的控制器也是同样的方法,

  新建文件app/code/local/community/Magease/controllers/Adminhtml/TagController.php

 

  到这里,magento的模块重写的内容方法基本已经全都在这里了,剩下的就是通过你自己的方法和技术,来写下你自己想要的模块功能或拓展吧。

转载于:https://my.oschina.net/u/3840660/blog/3045552

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值