pull() public méthode

Example: $messages = $subscription->pull(); foreach ($messages as $message) { echo $message->data(); }
See also: https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/pull Pull Subscriptions
public pull ( array $options = [] ) : Generator
$options array [optional] { Configuration Options @type bool $returnImmediately If set, the system will respond immediately, even if no messages are available. Otherwise, wait until new messages are available. @type int $maxMessages Limit the amount of messages pulled. }
Résultat Generator
 public function testPullPaged()
 {
     $messages = ['receivedMessages' => [['foo' => 'bar'], ['foo' => 'bat']], 'nextPageToken' => 'foo'];
     $this->connection->pull(Argument::that(function ($args) {
         if ($args['foo'] !== 'bar') {
             return false;
         }
         if ($args['returnImmediately'] !== true) {
             return false;
         }
         if ($args['maxMessages'] !== 2) {
             return false;
         }
         if (!in_array($args['pageToken'], [null, 'foo'])) {
             return false;
         }
         return true;
     }))->willReturn($messages)->shouldBeCalledTimes(3);
     $subscription = new Subscription($this->connection->reveal(), 'subscription-name', 'topic-name', 'project-id');
     $result = $subscription->pull(['foo' => 'bar', 'returnImmediately' => true, 'maxMessages' => 2]);
     $this->assertInstanceOf(Generator::class, $result);
     // enumerate the iterator and kill after it loops twice.
     $arr = [];
     $i = 0;
     foreach ($result as $message) {
         $i++;
         $arr[] = $message;
         if ($i == 6) {
             break;
         }
     }
     $this->assertEquals(6, count($arr));
 }