Cloud PubSub Client - Class PubSubClient (2.13.2)

Reference documentation and code samples for the Cloud PubSub Client class PubSubClient.

Google Cloud Pub/Sub allows you to send and receive messages between independent applications. Find more information at the Google Cloud Pub/Sub docs .

To enable the Google Cloud Pub/Sub Emulator , set the PUBSUB_EMULATOR_HOST environment variable.

This client supports transport over REST or gRPC .

In order to enable gRPC support please make sure to install and enable the gRPC extension through PECL:

 $ pecl install grpc 

NOTE: Support for gRPC is currently at an Alpha quality level, meaning it is still a work in progress and is more likely to get backwards-incompatible updates.

When using gRPC in production environments, it is highly recommended that you make use of the Protobuf PHP extension for improved performance. Protobuf can be installed via PECL .

 $ pecl install protobuf 

Example:

 use Google\Cloud\PubSub\PubSubClient;

$pubsub = new PubSubClient(['projectId' => 'my-project']); 
 // Using the Pub/Sub Emulator
use Google\Cloud\PubSub\PubSubClient;

// Be sure to use the port specified when starting the emulator.
// `8900` is used as an example only.
putenv('PUBSUB_EMULATOR_HOST=localhost:8900');

$pubsub = new PubSubClient(['projectId' => 'my-project']); 

Namespace

Google \ Cloud \ PubSub

Methods

__construct

Create a PubSub client.

Parameters
Name
Description
config
array

Configuration Options.

↳ projectId
string

The project ID from the Google Developer's Console.

↳ apiEndpoint
string

The hostname with optional port to use in place of the default service endpoint. Example: foobar.com or foobar.com:1234 .

↳ credentials
string|array|FetchAuthTokenInterface|CredentialsWrapper

The credentials to be used by the client to authorize API calls. This option accepts either a path to a credentials file, or a decoded credentials file as a PHP array. Advanced usage : In addition, this option can also accept a pre-constructed Google\Auth\FetchAuthTokenInterface object or Google\ApiCore\CredentialsWrapper object. Note that when one of these objects are provided, any settings in $credentialsConfig will be ignored. Important : If you accept a credential configuration (credential JSON/File/Stream) from an external source for authentication to Google Cloud Platform, you must validate it before providing it to any Google API or library. Providing an unvalidated credential configuration to Google APIs can compromise the security of your systems and data. For more information https://cloud.google.com/docs/authentication/external/externally-sourced-credentials

↳ credentialsConfig
array

Options used to configure credentials, including auth token caching, for the client. For a full list of supporting configuration options, see Google\ApiCore\CredentialsWrapper::build() .

↳ transport
string|TransportInterface

The transport used for executing network requests. May be either the string rest or grpc . Defaults to grpc if gRPC support is detected on the system. Advanced usage : Additionally, it is possible to pass in an already instantiated Google\ApiCore\Transport\TransportInterface object. Note that when this object is provided, any settings in $transportConfig, and any $apiEndpoint setting, will be ignored.

↳ transportConfig
array

Configuration options that will be used to construct the transport. Options for each supported transport type should be passed in a key for that transport. For example: $transportConfig = [ 'grpc' => [...], 'rest' => [...], ]; See the Google\ApiCore\Transport\GrpcTransport::build() and Google\ApiCore\Transport\RestTransport::build() methods for the supported options.

createTopic

See also:

Parameters
Name
Description
name
string

The topic name

options
array

[optional] Configuration Options. For available configuration options, refer to Topic::create() { @type bool $enableCompression Flag to enable compression of messages before publishing. Set the flag to true to enable compression. Defaults to false . Messsages are compressed if their total size >= compressionBytesThreshold , whose default value has been experimentally derived after performance evaluations. @type int $compressionBytesThreshold The threshold byte size above which messages are compressed. This only takes effect if enableCompression is set to true . Defaults to 240 . (This value is experiementally derived after performance evaluations.) }.

Returns
Type
Description

topic

Lazily instantiate a topic with a topic name.

No API requests are made by this method. If you want to create a new topic, use Topic::create() .

Example:

 // No API request yet!
$topic = $pubsub->topic('my-new-topic');

// This will execute an API call.
echo $topic->info()['name']; // `projects/my-awesome-project/topics/my-new-topic` 
Parameters
Name
Description
name
string

The topic name

options
array

[optional] Configuration Options { @type bool $enableCompression Flag to enable compression of messages before publishing. Set the flag to true to enable compression. Defaults to false . Messsages are compressed if their total size >= compressionBytesThreshold , whose default value has been experimentally derived after performance evaluations. @type int $compressionBytesThreshold The threshold byte size above which messages are compressed. This only takes effect if enableCompression is set to true . Defaults to 240 . (This value is experiementally derived after performance evaluations.) }

Returns
Type
Description

topics

See also:

Parameters
Name
Description
options
array

Configuration Options

↳ pageSize
int

Maximum number of results to return per request.

↳ resultLimit
int

Limit the number of results returned in total. Defaults to 0 (return all results).

↳ pageToken
string

A previously-returned page token used to resume the loading of results from a specific point.

Returns
Type
Description
Parameters
Name
Description
name
string

A subscription name

topic
Topic |string

The topic to which the new subscription will be subscribed.

options
array

[optional] Please see Subscription::create() for configuration details.

Returns
Type
Description

subscription

Lazily instantiate a subscription with a subscription name.

This method will NOT perform any API calls. If you wish to create a new subscription, use PubSubClient::subscribe() .

Unless you are sure the subscription exists, you should check its existence before using it.

Example:

 $subscription = $pubsub->subscription('my-new-subscription'); 
Parameters
Name
Description
name
string

The subscription name

topicName
string

[optional] The topic name

Returns
Type
Description

subscriptions

See also:

Parameters
Name
Description
options
array

Configuration Options

↳ pageSize
int

Maximum number of results to return per request.

↳ resultLimit
int

Limit the number of results returned in total. Defaults to 0 (return all results).

↳ pageToken
string

A previously-returned page token used to resume the loading of results from a specific point.

createSnapshot

Create a snapshot.

Please note that this method may not yet be available in your project.

Example:

 $subscription = $pubsub->subscription($subscriptionName);
$snapshot = $pubsub->createSnapshot('my-snapshot', $subscription); 
Parameters
Name
Description
name
string

The snapshot name.

subscription
Subscription

The subscription to take a snapshot of.

options
array

[optional] Configuration options.

Returns
Type
Description

snapshot

Lazily create a snapshot instance.

Example:

 $snapshot = $pubsub->snapshot('my-snapshot'); 
Parameters
Name
Description
name
string

The snapshot name.

info
array

[optional] Snapshot info.

Returns
Type
Description

snapshots

Get a list of the snapshots in the project.

Please note that this method may not yet be available in your project.

Example:

 $snapshots = $pubsub->snapshots();
foreach ($snapshots as $snapshot) {
     $info = $snapshot->info();
     echo $info['name'];
} 
Parameters
Name
Description
options
array

Configuration Options

↳ pageSize
int

Maximum number of results to return per request.

↳ resultLimit
int

Limit the number of results returned in total. Defaults to 0 (return all results).

↳ pageToken
string

A previously-returned page token used to resume the loading of results from a specific point.

Returns
Type
Description

schema

Lazily instantiate a schema object.

Example:

 $schema = $pubsub->schema('my-schema'); 
Parameters
Name
Description
schemaId
string

The schema ID. Must exist in the current project.

info
array

[optional] The schema resource info.

Returns
Type
Description

createSchema

See also:

Parameters
Name
Description
schemaId
string

The desired schema ID.

type
string

The schema type. Allowed values are AVRO and PROTOCOL_BUFFER .

definition
string

The definition of the schema. This should contain a string representing the full definition of the schema that is a valid schema definition of the type specified in type . See Schema for details.

options
array

[optional] Configuration options

Returns
Type
Description

schemas

See also:

Parameters
Name
Description
options
array

Configuration Options

↳ view
string

The set of Schema fields to return in the response. If not set, returns Schemas with name and type , but not definition . Set to FULL to retrieve all fields. For allowed values, use constants defined on V1\SchemaView .

↳ pageSize
int

Maximum number of results to return per request.

↳ resultLimit
int

Limit the number of results returned in total. Defaults to 0 (return all results).

↳ pageToken
string

A previously-returned page token used to resume the loading of results from a specific point.

Returns
Type
Description

validateSchema

See also:

Parameters
Name
Description
schema
array

The schema to validate. See Schema for available parameters.

options
array

[optional] Configuration options

Returns
Type
Description
void

validateMessage

See also:

Parameters
Name
Description
schema
Schema |string|array

The schema to validate against. If a string is given, it should be a fully-qualified schema name, e.g. projects/my-project/schemas/my-schema . If an instance of Schema is provided, it must exist in the current project. If an array is given, see Schema for definition. The array representation allows for validation of messages using ad-hoc schema; these do not have to exist in the current project in order to be used for validation.

message
string

The base64 encoded message to validate.

encoding
string

Either JSON or BINARY .

options
array

[optional] Configuration options

Returns
Type
Description
void

consume

Consume an incoming message and return a PubSub Message.

This method is for use with push delivery only.

Example:

 $httpPostRequestBody = file_get_contents('php://input');
$requestData = json_decode($httpPostRequestBody, true);

$message = $pubsub->consume($requestData); 
Parameter
Name
Description
requestData
array
Returns
Type
Description

timestamp

Create a Timestamp object.

Example:

 $timestamp = $pubsub->timestamp(new \DateTime('2003-02-05 11:15:02.421827Z')); 
Parameters
Name
Description
timestamp
DateTimeInterface
nanoSeconds
int

[optional] The number of nanoseconds in the timestamp.

Returns
Type
Description

duration

Create a Duration object.

Example:

 $duration = $pubsub->duration(100, 00001); 
Parameters
Name
Description
seconds
int

The number of seconds in the duration.

nanos
int

[optional] The number of nanoseconds in the duration. Defaults to * 0 .

Returns
Type
Description

__debugInfo

Constants

VERSION

  Value: '2.13.2' 
 

FULL_CONTROL_SCOPE

  Value: 'https://www.googleapis.com/auth/pubsub' 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: