This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

使用 PHP 进行发布订阅

如何使用

    使用 Dapr,你可以发布任何内容,包括云事件。SDK 包含一个简单的云事件实现,但你也可以直接传递一个符合云事件规范的数组,或者使用其他库。

    <?php
    $app->post('/publish', function(\Dapr\Client\DaprClient $daprClient) {
        $daprClient->publishEvent(pubsubName: 'pubsub', topicName: 'my-topic', data: ['something' => 'happened']);
    });
    

    有关发布/订阅的更多信息,请查看操作指南

    数据内容类型

    PHP SDK 允许在构造自定义云事件或发布原始数据时设置数据内容类型。

    <?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');
    

    接收云事件

    在你的订阅处理程序中,你可以让 DI 容器向你的控制器中注入 Dapr\PubSub\CloudEventarray。前者会进行一些验证以确保你有一个正确的事件。如果你需要直接访问数据,或者事件不符合规范,请使用 array