加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Magento继承链.好坏练习?

发布时间:2020-12-13 22:26:38 所属栏目:PHP教程 来源:网络整理
导读:我刚刚开始使用Magento(1.9)我已经读过Magento是OO设计的,这是一个很好的观点,但是在对核心和一些第三方模块进行了深入挖掘之后,我认为类继承链中的其他模块是很奇怪的(这可以达到最多4或5级继承). 这是一个好习惯吗? final class I4_TaskManagerOrderXml_B
我刚刚开始使用Magento(1.9)我已经读过Magento是OO设计的,这是一个很好的观点,但是在对核心和一些第三方模块进行了深入挖掘之后,我认为类继承链中的其他模块是很奇怪的(这可以达到最多4或5级继承).

这是一个好习惯吗?

final class I4_TaskManagerOrderXml_Block_Adminhtml_System_Config_Button_Runnow_Orderxml?    extends I4_TaskManager_Block_Adminhtml_System_Config_Button_Runnow_Import {} 

class I4_TaskManager_Block_Adminhtml_System_Config_Button_Runnow_Import? extends Mage_Adminhtml_Block_System_Config_Form_Field { //some stuff }

class Mage_Adminhtml_Block_System_Config_Form_Field? extends Mage_Adminhtml_Block_Abstract? implements Varien_Data_Form_Element_Renderer_Interface?{ //some stuff }

class Mage_Adminhtml_Block_Abstract extends Mage_Core_Block_Template?{ … }

解决方法

Magento使用了很多抽象层,因此它使第三方开发人员更灵活地挂钩代码.

(几乎)Magento中的每个类都可以通过扩展来重写.这意味着您可以轻松地将自己的方法添加到现有类中,而无需触及核心代码.

就OO而言:每个平台使用的抽象层数不同.例如,Magento中的产品Model具有以下链:

> Varien_Object,这是一个以Magento的魔术getter和setter功能而闻名的类> Mage_Core_Model_Abstract,它添加了基本的模型功能(例如加载和保存).> Mage_Catalog_Model_Abstract,例如,为产品和类别添加基本目录功能.> Mage_Catalog_Model_Product,这是一个基本产品.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读