すべてのプロダクト
Search
ドキュメントセンター

EventBridge:PHP 用 SDK

最終更新日:Jan 11, 2025

このトピックでは、EventBridge が提供する PHP 用 SDK のインストール方法と、PHP 用 SDK を使用してイベントを発行する方法について説明します。このトピックでは、サンプルコードも提供されています。

概要

EventBridge SDK は、管理 API SDK とデータ API SDK に分類されます。異なるタイプの SDK で使用されるサンプルコードは異なります。

  • 管理 API SDK:EventBridge コンソールで操作を実行するために使用される SDK です。

  • データ API SDK:イベントデータのチャネルです。このタイプの SDK を使用して呼び出されるのは、PutEvents API 操作のみです。

始める前に

以下の操作を実行します。

環境の準備

  • 環境要件

  • PHP バージョンの確認

    php -v コマンドを実行して、PHP のバージョンを確認します。

管理 API SDK

PHP 用 SDK のインストール

次のコマンドを実行して、PHP 用 SDK をインストールします。

composer require alibabacloud/eventbridge-20200401 1.0.0

サンプルコード

OpenAPI Explorer の対応する操作を呼び出して、サンプルコードを自動的に生成できます。詳細については、「SDK サンプルの自動生成」をご参照ください。

データ API SDK

PHP 用 SDK のインストール

  1. 次のコマンドを実行して、PHP 用 SDK をインストールします。

    composer require alibabacloud/eventbridge
  2. 次のコマンドを実行して、PHP 用の出力ライブラリをインストールします。

    composer require alibabacloud/tea-console

サンプルコード

データ API SDK は、PutEvents API 操作のみをサポートしています。 PHP 用 SDK を使用して 1 つ以上のイベントを発行する場合は、次のサンプルコードを参照してください。

<?php

namespace Alibabacloud\Sample;

use AlibabaCloud\SDK\EventBridge\Eventbridge;
use AlibabaCloud\SDK\EventBridge\Models\CloudEvent;
use AlibabaCloud\SDK\EventBridge\Models\Config;
use AlibabaCloud\Tea\Console\Console;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Exception;

class Client
{
    /**
     * CreateClient() 関数を使用して、共通の要求パラメータを初期化します。
     *
     * @return Eventbridge
     */
    public static function createClient()
    {
        $config = new Config([]);
        // AccessKey ID を設定します。
        SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")).
        // AccessKey Secret を設定します。
        SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).
        // エンドポイントを設定します。
        SetEndpoint("<endpoint>")
        return new Eventbridge($config);
    }

    /**
     * PutEvents
     *
     * @param Eventbridge $client
     *
     * @return void
     */
    public static function PutEvents($client)
    {
        $event                  = new CloudEvent([]);
        $event->datacontenttype = 'application/json';
        $event->data            = Utils::toBytes('test');
        $event->id              = 'a5074581-7e74-4e4c-868f-47e7afdf****';
        $event->source          = 'acs.oss';
        $event->specversion     = '1.0';
        $event->type            = 'oss:ObjectCreated:PostObject';
        $event->time            = '2020-08-24T13:54:05.965Asia/Shanghai';
        $event->subject         = '1.0';
        $event->type            = 'acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg';
        $event->extensions      = [
            'aliyuneventbusname' => 'demo-bus',
        ];
        try {
            $resp = $client->putEvents([
                $event,
            ]);
            Console::log('--------------------Aliyun EventBus にイベントを発行します--------------------');
            Console::log(Utils::toJSONString($resp->toMap()));
        } catch (Exception $error) {
            if (!($error instanceof TeaError)) {
                $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
            }
            Console::log($error->message);
        }
    }

    /**
     * @param string[] $args
     *
     * @return void
     */
    public static function main($args)
    {
        $client = self::createClient();
        self::PutEvents($client);
    }
}
require '../vendor/autoload.php';
Client::main([]);