Magneto 重写 Model

2016年3月14日 Edited 2022年12月6日 浏览量 17 1 min read
Magneto 重写 Model

我们在开发过程中,经常会遇到要给magento已有的models拓展一些新的功能,而且要在保证不影响magento的升级及其他插件拓展的使用的情况下,这时候,我们可能会比较头疼,到底怎样来重写magento的model类呢。
在有些时候,我们可能会这样做,到核心代码库中复制一个类,然后到local或者community目录下再粘贴一下,然后在里面改代码,这个方法也可用,但是今天,我要讲的是通过重写magneto model类的方式来实现对magento的核心model的拓展修改。
在这里我非常不提倡直接修改magento的核心代码,所以我写下这篇文章来倡议大家通过重写模块的形式来拓展核心代码。那么,到底应该怎样做才能实现对magento models的重写呢? 首先,新建一个新的模块。请确保你使用的模块名与 magento的核心模块名区分开。这里我随意找了一个magento model来进行讲解,如下:


Mage_Wishlist_Model_Item 
 
 

这个类的文件在 app/code/core/Mage/Wishlist/Model/Item.php
我们来新建一个model来重写当前的wishlist item model。比如叫做:Magease_Wishlist(当然你也可以改成你自己想要的名字)。 将app/code/core/Mage/Wishlist/Model/Item.php 拷贝到app/code/community/Magease/Wishlist/Model/目录下。打开文件将class Mage_Wishlist_Model_Item 重命名为class Magease_Wishlist_Model_Item
在loadByProductWishlist 方法中添加一下代码


var_dump(get_class($this)); 
exit();
 
 

新建模块的配置文件。app/etc/modules/Magease_Wishlist.xml


<? xml version="1.0" ?>
 <config>    
     <modules>      
         <magease_wishlist>     
             <active>true</active>         
             <codepool>local</codepool>  
         </magease_wishlist>    
     </modules> 
 </config> 

在当前的模块的配置文件app/code/local/magease/Wishlist/etc/Config.xml 中加入以下代码。


<? xml version = "1.0" ?>
<config> 
    <modules> 
        <magease_wishlist>   
            <version>0.1</version>     
        </magease_wishlist>  
    </modules>  
    <global> 
        <models> 
            <wishlist>        
                <rewrite>        
                    <item>Magease_Wishlist_Model_Item</item>   
                </rewrite>      
            </wishlist>  
        </models>   
    </global>
</config>

好了,到此为止,我们对Mage_Wishlist model的重写已经完成了,现在可以在里面随意的添加你想要添加的功能了。

Previous article:
Next article:
Comments
发表评论,留下你的足迹
我们不会公开你的邮箱地址

是否允许我们在发布新内容或者进行促销活动向您发送消息?

Remind me later

Thank you! Please check your email inbox to confirm.

Oops! Notifications are disabled.

© 2014-2023 www.magease.com. All Rights Reserved. 寰云网络 版权所有    鲁ICP备 14014975号-1