collection 和 php (propel) 中的数组有什么区别?
what is the difference between collection and array in php (propel)?
Collections 和 On-Demand 保湿
使用 a collection 而不是数组 的优点是 Propel 可以按需混合模型 objects。使用此功能,您在检索大量结果时永远不会出现内存不足的情况。可通过模型查询的 setFormatter() 方法获得,on-demand 水合作用很容易触发:
<?php
$authors = AuthorQuery::create()
->limit(50000)
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
->find();
foreach ($authors as $author) {
echo $author->getFirstName();
}
1) 这里的"Hydration"是什么意思?
2)collection和数组有什么区别?
来源:Propel @1.6
1.Hidration
一种通过 "filling" 您 Class/Object 在需要时使用行数据来提高性能的方法。
Propel 不会从非常大的 table 中执行 "SELECT * FROM SomeTable"
,而是首先启动 "SELECT ID FROM SomeTable"
,然后在循环中执行 "SELECT [COLUMS] FROM SomeTable WHERE ID=[CurrentID]"
,因此 "On Demand"
2。集合与数组
数组只是普通数组,而 PropelCollection 是对象的对象,它有很多可用的东西,例如:
- 分页结果
- 检查奇数或偶数,
->isOdd()
,等等
- 检查其中的项目数
$object->count()
- 格式转换
->toYAML()
、->toCSV()
、->toXML()
集合中的每个项目都是一个 PropelObject,因此您仍然可以在循环中使用 ->getColumn()
获取数据。 Documentation
Collections 和 On-Demand 保湿
使用 a collection 而不是数组 的优点是 Propel 可以按需混合模型 objects。使用此功能,您在检索大量结果时永远不会出现内存不足的情况。可通过模型查询的 setFormatter() 方法获得,on-demand 水合作用很容易触发:
<?php
$authors = AuthorQuery::create()
->limit(50000)
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
->find();
foreach ($authors as $author) {
echo $author->getFirstName();
}
1) 这里的"Hydration"是什么意思?
2)collection和数组有什么区别?
来源:Propel @1.6
1.Hidration
一种通过 "filling" 您 Class/Object 在需要时使用行数据来提高性能的方法。
Propel 不会从非常大的 table 中执行 "SELECT * FROM SomeTable"
,而是首先启动 "SELECT ID FROM SomeTable"
,然后在循环中执行 "SELECT [COLUMS] FROM SomeTable WHERE ID=[CurrentID]"
,因此 "On Demand"
2。集合与数组 数组只是普通数组,而 PropelCollection 是对象的对象,它有很多可用的东西,例如:
- 分页结果
- 检查奇数或偶数,
->isOdd()
,等等 - 检查其中的项目数
$object->count()
- 格式转换
->toYAML()
、->toCSV()
、->toXML()
集合中的每个项目都是一个 PropelObject,因此您仍然可以在循环中使用 ->getColumn()
获取数据。 Documentation