这创建模型之前,我们需要明确地定义将要创建的模型的类型和个数,就我们的礼品登记插件这个例子来说,看起来需要两种不同的模型:Registry Model:这个模型用于存储礼品登记信息,如礼品登记类型、地址和收件人信息Registry Item:这个模型用于存储每个登记的礼品的信息,如需要的数量、购买的数量和产品ID等尽管这种方法没错,但并没有满足这个……继续阅读 » Alan 11年前 (2014-08-02) 5053浏览 0评论0个赞
模块配置主要涉及到两个xml文件:config.xml和system.xml,除了这两个文件外,模型配置信息还有可能保存在下面的文件中:api.xmladminhtml.xmlcache.xmlwidget.xmlwsdl.xmlwsi.xmlconvert.xml下面我们先集中讲解config.xml文件,详细分解步骤如下:第一步先……继续阅读 » Alan 11年前 (2014-07-21) 5005浏览 0评论0个赞
前面的章节我们主要集中学习了Magento的相关理论、架构并熟悉日常开中常用和重要的理念。从现在开始,我们将利用所学到的知识和技巧投入实际应用,来不断的创建一个前端插件,礼品登记(Gift Registry)插件。应用场景应用场景相当的简单,创建一个Magento插件,允许客户创建礼品登记列表并可将其分享给朋友和家人,并且可以创建多个礼品登记、指定每个列……继续阅读 » Alan 11年前 (2014-07-18) 4833浏览 0评论0个赞
前面我们学习了如何通过Magento数据模型和ORM系统提供一个简单便捷的方式来获取、存储和操作数据。在进入下面内容的讲解之前,先学习一下Magento数据库适配器以及如何运行SQL查询,但应尽量避免本节中所要学到的内容。因为Magento是一套相应复杂的系统,这个在前面也有提到,这套框架一部分由事件来驱动。仅仅是保存一个产品就会触发不同的事件,由每个事件执……继续阅读 » Alan 11年前 (2014-07-17) 5782浏览 0评论0个赞
从上一节的示例代码中,您可能会发现不仅仅实例化了Product模型,还调用了getCollection()方法,getCollection()方法是Mage_Core_Model_Abstract抽象类的一部分,也就是说Magento中的所有模型都可以调用这个方法。注:所有的集合都继承Varien_Data_CollectionMagento的集合实际上……继续阅读 » Alan 11年前 (2014-07-12) 6684浏览 0评论0个赞
根据前面的学习,我们已经成功获取产品实体及其特定的一些属性,下面就该看看如何获取直实的值了。为简化起见,这里仅介绍如何获取产品的名称属性。那我们如何知道某一属性值存储在哪张表中呢?幸好Magento遵循一套命名系统来对表格过行命名,如果您查看Magento数据库的表格的话,会发现很多以catalog_product_entity为前缀的表格:catal……继续阅读 » Alan 11年前 (2014-07-11) 5414浏览 0评论0个赞
EAV是英文Entity实体、Attribute属性和Value值的首字母缩写,可能是初学Magento的开发者最难以掌握的部分。虽然并不是只有Magento使用EAV这一概念,在当代的系统中鲜有使用它的,此外Magento对于EAV的运用也并不简单。那么究竟什么是EAV呢?为了便于大家理解EAV分别在Magento中起到什么作用,下面对它们进行逐一……继续阅读 » Alan 11年前 (2014-07-10) 13356浏览 0评论1个赞
Magento的ORM系统运用了魔术方法,更确切地说是PHP强大的getter和setter功能,__call()方法。Magento的这些方法用于set, unset, 检查或获取数据。当我们调用了一个在相应类中不存在的方法时,PHP会在父类中查找是否存在该方法的声明。如果在父类中也查找不到函数,最终会使用__call()方法进行查找,Magento(或……继续阅读 » Alan 11年前 (2014-07-10) 6855浏览 0个赞
集合(collection)和模型(model)对于Magento的开发来说就像是一日三餐一样不可或缺。接下来我们会讲解Magento的ORM系统(Object Relational Mapping-对象关系映射),并学习如何正确地使用数据集合以及EAV系统。Magento像大多的当代系统一样使用了对象关系映射(ORM)。对象关系映射(Object-rel……继续阅读 » Alan 11年前 (2014-07-09) 6234浏览 0评论0个赞
Magento中的事件(event)和观察者模式(observer pattern)相当的有意思,它使得开发者在应用流中对Magento的重要部分进行扩展。为了提供高灵活性以及促进不同模块之间的交互,Magento添加了事件/观察者模式,这一模式可以让模块之间产生松散耦合。这一系统分为两部分,处理对象和事件信息的事件以及监听特定事件的观察者。事件处理……继续阅读 » Alan 11年前 (2014-07-04) 5319浏览 0评论0个赞