朋友。我知道,這些迭代器已經有很多問題了。 我讀過一些東西,我不是初學者...但我的思想有點卡住了。請幫助我理解我在實踐中如何使用迭代器。使用PHP迭代器
假設,我有一個ORM對象可以從數據庫中選擇實例。和一個實例包含字段,並可以插入,uodate等照常。 我想遍歷一個類型的所有對象,但由於可以有很多這樣的對象,所以我更喜歡用「頁面」來選擇它們。我的代碼:
$limit = 100;
$offset = 0;
do
{
$recs = $orm->select($filter, $sorting, $limit , $offset);
$offset += $limit;
foreach ($recs as $rec)
{
// doing something with record
}
}
while (count($recs) == $limit);
我覺得迭代器模式在這裏什麼適合,但什麼接口是更好的在這種情況下實施或者一些基礎SPL類?
UPDATE 理想代碼上面迭代可能看起來像:
$iterator = new ORMPagedIterator($ormobject, $filter, $sorting);
foreach ($iterator as $rec)
{
// do something with record
}
例如所有那些逐頁行爲都在迭代器中。
您可能想詳細說明您的場景。我不明白你的意思是「我喜歡按頁面選擇它們」。此外,查看http://stackoverflow.com/questions/1957133/php-spl-reference-documentation各種SPL相關資源。 – Gordon
「通過頁面」的意思是「通過某些部分」,而不是「一個請求中的所有」。其實,現在我沒有太多時間去閱讀大量的文檔,所以我希望得到一個好的建議。 – dmitry
AFAIK通常在服務器上提取更多數據比在同一查詢中運行更多次更容易 – max4ever