The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
Publish and Subscribe
With Dapr, you can publish anything, including cloud events. The SDK contains a simple cloud event implementation, but you can also just pass an array that conforms to the cloud event spec or use another library.
<?php
$app->post('/publish', function(\Dapr\Client\DaprClient $daprClient) {
$daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: ['something' => 'happened']);
});
For more information about publish/subscribe, check out the howto.
Data content type
The PHP SDK allows setting the data content type either when constructing a custom cloud event, or when publishing raw data.
<?php
$event = new \Dapr\PubSub\CloudEvent();
$event->data = $xml;
$event->data_content_type = 'application/xml';
<?php
/**
* @var \Dapr\Client\DaprClient $daprClient
*/
$daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: $raw_data, contentType: 'application/octet-stream');
Binary data
Only <code>application/octet-steam</code> is supported for binary data.
Receiving cloud events
In your subscription handler, you can have the DI Container inject either a Dapr\PubSub\CloudEvent
or an array
into
your controller. The former does some validation to ensure you have a proper event. If you need direct access to the
data, or the events do not conform to the spec, use an array
.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.