Skip to content

Instantly share code, notes, and snippets.

@isvargasmsft
Last active November 8, 2023 12:31
Show Gist options
  • Save isvargasmsft/c66a4c76b01ce25400c6bdf63268882c to your computer and use it in GitHub Desktop.
Save isvargasmsft/c66a4c76b01ce25400c6bdf63268882c to your computer and use it in GitHub Desktop.
Paging through a collection
<?php
use Microsoft\Graph\Core\Tasks\PageIterator;
use Microsoft\Graph\Generated\Models\Message;
use DateTimeInterface;
$messages = $graphServiceClient->users()->byUserId(USER_ID)->messages()->get()->wait();
$pageIterator = new PageIterator($messages, $graphServiceClient->getRequestAdapter());
$counter = 0;
$callback = function (Message $message) use (&$counter) {
echo "Subject: {$message->getSubject()}, Received at: {$message->getReceivedDateTime()->format(DateTimeInterface::RFC2822)}\n";
$counter ++;
return ($counter % 5 != 0);
};
while ($pageIterator->hasNext()) {
// iteration pauses and resumes after every 5 messages
$pageIterator->iterate($callback);
echo "\nPaused iteration...Total messages: {$counter}\n\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment