- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入理解Magento-第十章-数据操作
深入理解Magento-第十章-数据操作数据收集器
在我们开始介绍数据操作前,我们先介绍一个神兵利器—Varien Data Collections。在最早的时候我们写php通常用Array来做数据收集器,这个小东西可发挥了大作用,要知道如果你想在其他语言中实现Array有多么难过。例如c、c++。
在php5中,更是发扬了Array,php内置了一些类和接口,允许你创建你自己的数据结构。Magento充分利用了这一点,在使用Varien_Data_Collection来做数据收集的时候,它实现了php内置IteratorAggregate对象迭代器和Countable两个接口。下面是用php内置类ArrayObject的一个例子。
$array = new ArrayObject();
class MyCollection extends ArrayObject{}
$collection = new MyCollection();
$collection[] = bar;
在接下来的文章中,我认为你已经了解ArrayObject、IteratorAggregate、Countable。如果还是很陌生,我建议你先阅读这篇文章PHP5对象迭代(Object Iteration)。当然你不必了解很底层的东西,你只需要知道如何用就可以了。
适合对象:高级开发者
作者:精东
最后修改时间:2010年5月31日
版本:V 0.1.0
在Magento代码中,其实每个Model都有个Collection。了解这些数据收集器是如何工作的是你成为一个真正Magento开发人员的关键点。下面让我们开始吧,前面我们创建过一个Helloworld模块,现在我们继续用他开始我们接下来的学习。
创建一个数据收集器
首先,我们创造一些新的对象。
$thing_1 = new Varien_Object();
$thing_1-setName(Richard);
$thing_1-setAge(24);
?
$thing_2 = new Varien_Object();
$thing_2-setName(Jane);
$thing_2-setAge(12);
?
$thing_3 = new Varien_Object();
$thing_3-setName(Spot);
$thing_3-setLastName(The Dog);
$thing_3-setAge(7);
Magento中所有的Model都继承Varien_Object,在面向对象编程中,这样做的好处是当你想往多个Model中添加方法的时候,你只需要简单地修改一个文件即可。
在继承Varien_Object的类中,有两个魔术方法,get/set,你可以很方便的向对象中加入一个属性(值),让我们看个例子。
var_dump($thing_1-getName());
如果你忘记了属性的名字,你可以将所有数据都获取到:
var_dump($thing_3-getData());
你将看到以下结果:
array
name = string Spot (length=4)
last_name = string The Dog (length=7)
age = int 7
注意last_name属性,是用下滑线分隔的,如果你想用get和set魔术方法,那么需要使用驼峰命名法。
$thing_1-setLastName(Smith);
在新版本的magento中你可以用array关联数组的方式获取数据。
var_dump($thing_3[last_name]);
T这个归功于php5的新特性,ArrayAccess接口。也是 “Object Oriented Programming”.
现在然我们把这些对象加到数据收集器Varien_Data_Collection中。很多程序员将Collection看成是数组,当然我不反对。
$collection_of_things = new Varien_Data_Collection();
$collection_of_things
-addItem($thing_1)
-addItem($thing_2)
-addItem($thing_3);
大多数Magento data Collections继承于Varien_Data_Collection,你可以使用里面的任何一个方法。
那么我们可以做些什么呢?接下来我们使用foreach去循环它。
foreach($collection_of_things as $thing)
{
var_dump($thing-getData());
}
这里还有方法取出第一个数据和最后一
您可能关注的文档
最近下载
- 2025年新译林版英语7年级上册全册教学课件.pptx
- 2023年黑龙江八一农垦大学公共课《中国近代史纲要》期末试卷B(有答案).docx VIP
- 2025年中央八项规定精神学习教育测试题库及答案.docx VIP
- 医院检验科副主任个人述职报告.pptx VIP
- 识字6《日月明》课件.ppt VIP
- 2023年黑龙江八一农垦大学公共课《中国近代史纲要》期末试卷A(有答案).docx VIP
- 《算法设计与分析基础》(Python语言描述) 课件 第6章分支限界法(2).pptx
- 肥胖对健康的危害与疾病管理题库答案-2025年华医网继续教育.docx VIP
- 法律考试专项试卷.doc VIP
- 景观园林招标技术要求.pdf VIP
原创力文档


文档评论(0)