/** * Get a list of the subscriptions registered to all of your project's * topics. * * Example: * ``` * $subscriptions = $pubsub->subscriptions(); * foreach ($subscriptions as $subscription) { * $info = $subscription->info(); * echo $info['name']; // `projects/my-awesome-project/subscriptions/<subscription-name>` * } * ``` * * @see https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/list List Subscriptions * * @param array $options [optional] { * Configuration Options * * @type int $pageSize Maximum number of results to return per * request. * } * @return \Generator<Google\Cloud\PubSub\Subscription> */ public function subscriptions(array $options = []) { $options['pageToken'] = null; do { $response = $this->connection->listSubscriptions($options + ['project' => $this->formatName('project', $this->projectId)]); foreach ($response['subscriptions'] as $subscription) { (yield $this->subscriptionFactory($subscription['name'], $subscription['topic'], $subscription)); } // If there's a page token, we'll request the next page. $options['pageToken'] = isset($response['nextPageToken']) ? $response['nextPageToken'] : null; } while ($options['pageToken']); }