public function testLimit() { $obj = new ListLogEventsOptions(); $this->assertEquals(null, $obj->getLimit()); $this->assertEquals($obj, $obj->setLimit(100)); $this->assertEquals(100, $obj->getLimit()); }
/** * @param ListLogEventsOptions $options * * @return LogList */ public function getLogList(ListLogEventsOptions $options = null) { if ($options == null) { $options = new ListLogEventsOptions(); } $logList = new LogList(); $continue = ''; $limit = $options->getLimit(); while (true) { $params = $this->getParamsFromOptions($options); if (!empty($continue)) { $params['lecontinue'] = $continue; } if ($limit === null) { $params['lelimit'] = 5000; } else { $params['lelimit'] = $limit; } $result = $this->api->getRequest(new SimpleRequest('query', $params)); $limit = $limit - count($result['query']['logevents']); foreach ($result['query']['logevents'] as $logevent) { $logList->addLog(new Log($logevent['logid'], $logevent['type'], $logevent['action'], $logevent['timestamp'], $logevent['user'], new Page(new PageIdentifier(new Title($logevent['title'], $logevent['ns']), $logevent['pageid']), new Revisions()), $logevent['comment'], $this->getLogDetailsFromEvent($logevent))); } if ($limit !== null && $limit <= 0) { return $logList; } if (empty($result['query-continue']['logevents']['lecontinue'])) { return $logList; } else { $continue = $result['query-continue']['logevents']['lecontinue']; } } }