2016-06-28 101 views
1

类别和点播水化
使用阵列的集合,而不是优点是波轮可以按需滋润模型对象。使用此功能,您在检索大量结果时绝不会失去内存。可通过模型的查询的setFormatter()方法,按需水化很容易引发:php(propel)中的collection和array有什么区别?

<?php 
$authors = AuthorQuery::create() 
    ->limit(50000) 
    ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND) 
    ->find(); 

foreach ($authors as $author) { 
    echo $author->getFirstName(); 
} 

1)什么是“水化”在这里的意思吗?
2)集合和数组有什么区别?

来源:Propel @1.6

回答

2

1.Hidration

一种方式,通过“填”你的类/与行的数据对象,以提高性能,只是当你需要它。

而不是从一个非常大的表做"SELECT * FROM SomeTable"的,行走最初将脱火"SELECT ID FROM SomeTable",然后在循环里,然后做"SELECT [COLUMS] FROM SomeTable WHERE ID=[CurrentID]",因此“按需”

2.收集VS阵 数组只是正常阵列,而PropelCollection是对象中的对象,其具有可用的很多东西如:

  • 寻呼导致
  • 检查OD d甚至,->isOdd()
  • 检查它的项目数$object->count()
  • 格式转换->toYAML()->toCSV()->toXML()

集合中的每一项都是一个PropelObject,所以你仍然可以获取数据与->getColumn()在你的循环内。 Documentation

相关问题