Пример #1
0
 /**
  * @test
  */
 public function setMaxLimitWithoutDefaultDoesNotChangeDefault()
 {
     $page = new Page();
     $maxLimit = 14;
     $default = $page->getDefaultLimit();
     $this->assertNotEquals($page->getMaxLimit(), $maxLimit);
     $page->setLimitBounds($maxLimit);
     $this->assertEquals($page->getMaxLimit(), $maxLimit);
     $this->assertEquals($page->getDefaultLimit(), $default);
 }
Пример #2
0
 /**
  * Applies search query via $params and invokes
  * $callable on each result. $chunkSize specifies
  * how many entities will be read into memory at once.
  *
  * @param Params $params
  * @param $callable
  * @param int $chunkSize
  * @return $this
  * @throws \FzyUtils\Exception\Configuration\Invalid
  */
 public function traverseResults(Params $params, $callable, $chunkSize = 100)
 {
     $total = $this->getCount($params);
     $page = new Page(0, $chunkSize);
     $page->setLimitBounds($chunkSize, $chunkSize);
     while ($page->getOffset() < $total) {
         $set = $this->getResults($page, $params);
         $i = 0;
         foreach ($set as $item) {
             call_user_func($callable, $item, $page->getOffset() + $i++);
         }
         $page->setOffset($page->getOffset() + $page->getLimit());
     }
     return $this;
 }