Magento二次开发的利器:Rewrite_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > Magento二次开发的利器:Rewrite

Magento二次开发的利器:Rewrite

 2010/12/15 8:02:02  cgzhang  http://magentosh.javaeye.com  我要评论(0)
  • 摘要:Magento是一个十分优秀的电子商务系统,但是有时候我们需要增加一些新的功能或者修改原有的功能,一般情况下通过自己开发的扩展模块(module)可以满足要求。如果需要修改系统的一些默认行为(如结账,注册等),不提倡直接修改Magento本身模块里的代码(修改后无法升级,因为升级后所做的修改会被升级后的文件覆盖),这时候Magento提供的rewrite机制可以满足我们的要求。Magento中可以rewrite的对象有:Block,Controller(frontend和admin
  • 标签:Magento 开发
Magento是一个十分优秀的电子商务系统,但是有时候我们需要增加一些新的功能或者修改原有的功能,一般情况下通过自己开发的扩展模块(module)可以满足要求。如果需要修改系统的一些默认行为(如结账,注册等),不提倡直接修改Magento本身模块里的代码(修改后无法升级,因为升级后所做的修改会被升级后的文件覆盖),这时候Magento提供的rewrite机制可以满足我们的要求。

Magento中可以rewrite的对象有:Block, Controller(frontend 和admin)以及Model。

最常用的是rewrite controller,参见:Magento重载Controller的方法。
通过rewrite控制器,可以修改系统本身模块的一些动作而又不改变原有的url。

其次是rewrite block,方法参见:
Magento中用子类替换Block

Rewrite block可以给系统原有的block类加入新的字段,方法,设置新的template等。

最后可以rewrite model,方法如下:
1. 在配置文件config.xml中加入:
<models>
  <enterprise_catalogpermissions> <!--被rewrite的model标识符-->
        <rewrite>
             <!--被rewrite类名-->
             <!--替换的全类名-->
             <observer>Glamour_Glscustomer_Model_Observer</observer>
       </rewrite>
            </enterprise_catalogpermissions>
        <customer>
            <rewrite>
            	<session>Glamour_Glscustomer_Model_Customer_Session</session>
             </rewrite>
        </customer>
...
</models>


Rewrite model后,通过
Mage::getModel('enterprise_catalogpermissions/observer')


Mage::getModel('customer/session')

实际上获得的类是:
Glamour_Glscustomer_Model_Observer


Glamour_Glscustomer_Model_Customer_Session


可以给原有的model加入新的字段,修改或加入新的方法。
上一篇: 从eaccelerator升级到apc 下一篇: php参考
发表评论
用户名: 匿名