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

Alibaba Cloud SDK:IDE で PHP 用 Alibaba Cloud SDK を使用する

最終更新日:Mar 04, 2025

このトピックでは、Windows 上の統合開発環境 (IDE) で PHP 用 Alibaba Cloud SDK を使用する方法について説明します。この例では、Visual Studio (VS) Code を使用します。

前提条件

SDK を使用する

OpenAPI Explorer で提供されるサンプルプロジェクトを使用する

説明

特定の API 操作のサンプルプロジェクトのダウンロードに失敗する場合があります。この場合は、既存のプロジェクトで SDK を使用できます。詳細については、このトピックの既存のプロジェクトで SDK を使用するセクションをご参照ください。

  1. OpenAPI Explorer にアクセスします。呼び出す API 操作を検索します。この例では、Elastic Compute Service (ECS) の DescribeRegions 操作を使用します。検索ボックスに DescribeRegions と入力し、検索結果で操作名をクリックして API デバッグページに移動します。

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. パラメーター タブで、要件に基づいてパラメーターを指定します。パラメーターを指定する際は、デバッグページの右側にあるドキュメント タブの情報をお読みください。操作の使用方法に関する注意事項と各パラメーターの説明を理解していることを確認してください。課金関連の情報に注意してください。

    1716346635851_0B018C7F-D759-497b-B529-58E23E4AC41B

  3. デバッグページの右側にある [SDK サンプルコード] タブで、PHP プログラミング言語を選択し、[プロジェクトのダウンロード] をクリックして、完全なサンプルプロジェクトパッケージをコンピューターにダウンロードします。次に、パッケージを解凍します。

    image

  4. VS Code で解凍したパッケージを開き、ターミナルで composer install コマンドを実行して、サンプルプロジェクトに必要な依存関係をインストールします。

    composer install コマンドを実行すると、次のエラーが報告される場合があります。

    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires alibabacloud/ecs-20140526 ^4.1.6 -> satisfiable by alibabacloud/ecs-20140526[4.1.6].
        - alibabacloud/ecs-20140526 4.1.6 requires alibabacloud/tea-utils ^0.2.20 -> found alibabacloud/tea-utils[dev-master, 0.1.0, ..., 0.2.19] but it does not match the constraint.

    エラーを修正するには、composer.json ファイルで alibabacloud/ecs-20140526 依存関係のバージョンを変更できます。

    "alibabacloud/ecs-20140526": "^4.1",
  5. ターミナルで php src/Sample.php コマンドを実行して、サンプルコードを実行します。応答で "statusCode": 200 が返された場合、呼び出しは成功です。

    image

既存のプロジェクトで SDK を使用する

  1. SDK Center にアクセスし、SDK を使用したいクラウドサービスを選択します。この例では、ECS を使用します。[V2.0][SDK 生成] ドロップダウンリストから選択し、[すべての言語] セクションで [PHP] を選択します。

    image

  2. VS Code を開きます。上部のナビゲーションバーで、[ファイル] > [フォルダーを開く] を選択します。プロジェクトフォルダーを作成して選択するか、既存のプロジェクトフォルダーを選択します。この例では、phpprojects という名前のフォルダーを作成して選択します。

  3. SDK をインストールするために使用するコマンドをコピーし、ターミナルでコマンドを実行して SDK をインストールします。

  4. [EXPLORER] パネルで、空白領域を右クリックし、[新しいファイル] を選択して PHP ファイルを作成します。ファイル名を demo.php にします。

  5. クライアントを初期化します。Alibaba Cloud API 操作を呼び出すには、最初にクライアントを初期化する必要があります。この例では、ECS クライアントを初期化します。

    重要
    1. クライアントを初期化するときは、AccessKey ペアを使用して ID 検証を完了する必要があります。この場合、事前に AccessKey ペアを取得する必要があります。AccessKey ペアの取得方法の詳細については、「AccessKey ペアを作成する」をご参照ください。

    2. RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows で環境変数を構成する」をご参照ください。

    3. エンドポイントの設定方法の詳細については、「エンドポイント」をご参照ください。

    <?php
    use AlibabaCloud\Credentials\Credential\Config;
    use AlibabaCloud\SDK\Ecs\V20140526\Ecs;
    
    
    class Sample
    {
        /**
         * ECS クライアントを作成します。
         * このメソッドを使用して、ECS の API 操作を呼び出すために使用できる ECS クライアントを初期化して返します。
         * 環境変数から AccessKey ID と AccessKey シークレットを取得して、ECS クライアントを設定できます。これにより、機密情報の漏洩を防ぎ、機密情報への安全なアクセスを保証します。
         *
         * @return Ecs 設定済みの ECS クライアントを返します。
         */
        public static function createClient()
        {
            // 構成オブジェクトを作成します。
            $config = new Config([
                "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // 環境変数から Resource Access Management (RAM) ユーザーの AccessKey ID を取得します。
                "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
                "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // ECS エンドポイントを指定します。
            ]);
    
            // 前述の構成に基づいて別の ECS クライアントを作成します。
            return new Ecs($config);
        }
    }
  6. API 操作を呼び出します。API 操作を呼び出す前に、対応する API ドキュメント を読む必要があります。この例では、ECS の DescribeRegions 操作を使用します。

    説明

    各 API 操作には、${API名}${Request} 形式で名前が付けられたリクエストオブジェクトがあります。例:DescribeRegionsRequest。

    <?php
    
    require_once 'vendor/autoload.php';
    
    use AlibabaCloud\SDK\Ecs\V20140526\Ecs;
    use AlibabaCloud\SDK\Ecs\V20140526\Models\DescribeRegionsRequest;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use Darabonba\OpenApi\Models\Config;
    
    
    class Sample
    {
        /**
         * ECS クライアントを作成します。
         * このメソッドを使用して、ECS の API 操作を呼び出すために使用できる ECS クライアントを初期化して返します。
         * 環境変数から AccessKey ID と AccessKey シークレットを取得して、ECS クライアントを設定できます。これにより、機密情報の漏洩を防ぎ、機密情報への安全なアクセスを保証します。
         *
         * @return Ecs 設定済みの ECS クライアントを返します。
         */
        public static function createClient()
        {
            // 構成オブジェクトを作成します。
            $config = new Config([
                "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // 環境変数から RAM ユーザーの AccessKey ID を取得します。
                "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
                "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // ECS エンドポイントを指定します。
            ]);
    
            // 前述の構成に基づいて別の ECS クライアントを作成します。
            return new Ecs($config);
        }
        /**
         *
         * この関数は、SDK クライアントを使用して DescribeRegions 操作を呼び出す方法を示すために使用されます。
         * この関数を使用して、クライアントを作成し、リクエストオブジェクトを構築し、操作を呼び出すことができます。
         * 呼び出しが失敗した場合、例外がキャプチャされ、エラーメッセージが返されます。
         */
        public static function main()
        {
            // SDK クライアントを作成します。
            $client = self::createClient();
            // DescribeRegionsRequest リクエストオブジェクトを作成し、リクエストオブジェクトのパラメーターを指定しません。
            $describeRegionsRequest = new DescribeRegionsRequest([]);
            // RuntimeOptions インスタンスを作成し、インスタンスのパラメーターを指定しません。
            $runtime = new RuntimeOptions([]);
            try {
                // クライアントの describeRegionsWithOptions メソッドを使用して操作を呼び出します。
                // try-catch ブロックは、発生する可能性のある例外をキャプチャするために使用されます。
                $result = $client->describeRegionsWithOptions($describeRegionsRequest, $runtime);
                print_r($result);
            } catch (Exception $error) {
                // 実際のビジネスシナリオでは例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、情報は参照用にのみ表示されます。
                var_dump($error->message);
            }
        }
    }
    
    Sample::main();
  7. 例外を処理します。実際のビジネスシナリオでは例外を慎重に処理し、プロジェクトで例外を無視しないでください。例外の報告、ログの記録、再試行の実行などの操作を実行して、例外を適切に処理することをお勧めします。これにより、システムの堅牢性と安定性を確保できます。PHP 用 SDK での例外の処理方法の詳細については、「例外を処理する」をご参照ください。

    <?php
    
    require_once 'vendor/autoload.php';
    
    use AlibabaCloud\SDK\Ecs\V20140526\Ecs;
    use AlibabaCloud\SDK\Ecs\V20140526\Models\DescribeRegionsRequest;
    use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
    use Darabonba\OpenApi\Models\Config;
    
    
    class Sample
    {
        /**
         * ECS クライアントを作成します。
         * このメソッドを使用して、ECS の API 操作を呼び出すために使用できる ECS クライアントを初期化して返します。
         * 環境変数から AccessKey ID と AccessKey シークレットを取得して、ECS クライアントを設定できます。これにより、機密情報の漏洩を防ぎ、機密情報への安全なアクセスを保証します。
         *
         * @return Ecs 設定済みの ECS クライアントを返します。
         */
        public static function createClient()
        {
            // 構成オブジェクトを作成します。
            $config = new Config([
                "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // 環境変数から RAM ユーザーの AccessKey ID を取得します。
                "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
                "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // ECS エンドポイントを指定します。
            ]);
    
            // 前述の構成に基づいて別の ECS クライアントを作成します。
            return new Ecs($config);
        }
        /**
         *
         * この関数は、SDK クライアントを使用して DescribeRegions 操作を呼び出す方法を示すために使用されます。
         * この関数を使用して、クライアントを作成し、リクエストオブジェクトを構築し、操作を呼び出すことができます。
         * 呼び出しが失敗した場合、例外がキャプチャされ、エラーメッセージが返されます。
         */
        public static function main()
        {
            // SDK クライアントを作成します。
            $client = self::createClient();
            // DescribeRegionsRequest リクエストオブジェクトを作成し、リクエストオブジェクトのパラメーターを指定しません。
            $describeRegionsRequest = new DescribeRegionsRequest([]);
            // RuntimeOptions インスタンスを作成し、インスタンスのパラメーターを指定しません。
            $runtime = new RuntimeOptions([]);
            try {
                // クライアントの describeRegionsWithOptions メソッドを使用して操作を呼び出します。
                // try-catch ブロックは、発生する可能性のある例外をキャプチャするために使用されます。
                $result = $client->describeRegionsWithOptions($describeRegionsRequest, $runtime);
                print_r($result);
            } catch (Exception $error) {
                if ($error instanceof TeaError) {
                    // 実際のビジネスシナリオでは例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、情報は参照用にのみ表示されます。
                    print_r("message:" . $error->getMessage() . "\n");
                    print_r("code:" . $error->getCode() . "\n");
                    print_r($error->data);
                } elseif ($error instanceof TeaUnableRetryError) {
                    // 実際のビジネスシナリオでは例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、情報は参照用にのみ表示されます。
                    print_r($error->getLastException());
                } else {
                    // 実際のビジネスシナリオでは例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、情報は参照用にのみ表示されます。
                    print_r("message:" . $error->getMessage());
                }
            }
        }
    }
    
    Sample::main();

FAQ

  • API 操作の呼び出し時に「cURL error 60: SSL certificate problem: unable to get local issuer certificate」というエラーが報告された場合はどうすればよいですか?

    • 信頼できる認証局 (CA) 証明書をダウンロードする必要があります。たとえば、Mozilla から CA 証明書をダウンロードできます。詳細については、「Mozilla から抽出された CA 証明書」を参照してください。

    • PHP の SSL 証明書のパスを設定します。php.ini ファイルで curl.cainfo パラメーターを検索し、このパラメーターの値を CA 証明書の絶対パスに設定してから、パラメーターの前にあるセミコロン (;) を削除します。

    • PHP サービスを再起動します。

関連情報

高度な関連情報