Comece a usar os SDKs da Alibaba Cloud para PHP em um IDE no Windows. Este exemplo usa o Visual Studio (VS) Code.
Pré-requisitos
PHP e Composer instalados. Para mais informações, consulte Instalar o PHP.
VS Code instalado. Para obter instruções, consulte Configurar um ambiente de desenvolvimento PHP no Windows.
Usar um SDK
Usar um projeto de exemplo fornecido no OpenAPI Explorer
Projetos de exemplo podem não estar disponíveis para todas as operações de API. Caso não consiga baixar um, consulte a seção Usar um SDK em um projeto existente.
Acesse o OpenAPI Explorer e pesquise a operação de API desejada. Por exemplo, para chamar a operação DescribeRegions do ECS, insira DescribeRegions na barra de pesquisa e clique no nome da API nos resultados para abrir a página de depuração.
-
Na aba Parameters, configure os parâmetros obrigatórios. Revise as informações na aba Document, à direita da página de depuração, para compreender as notas de uso e as descrições dos parâmetros. Atenção às informações relacionadas ao faturamento.
Na aba Documentation, a tabela Request Parameters lista o nome, o tipo, a descrição e o valor de exemplo de cada parâmetro, como
InstanceChargeType,ResourceTypeeAcceptLanguage. Os Response Parameters aparecem logo abaixo. -
Na aba SDK Sample Code, à direita da página de depuração, selecione a linguagem PHP e clique em Download Project para baixar o pacote do projeto de exemplo. Em seguida, descompacte o pacote.
Selecione a versão do SDK V2.0 (Recommended), escolha PHP na aba de linguagem e clique em Download Project.
-
Abra o pacote descompactado no VS Code e execute o comando
composer installno terminal para instalar as dependências necessárias.O seguinte erro pode ocorrer durante a execução do comando
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.Para corrigir esse erro, modifique a restrição de versão da dependência alibabacloud/ecs-20140526 no arquivo composer.json.
"alibabacloud/ecs-20140526": "^4.1" -
Execute o comando
php src/Sample.phpno terminal para rodar o código de exemplo. Se a resposta retornar"statusCode":200, a chamada foi bem-sucedida.PS D:\xxx\download\e11baaaa2-4f02-4671-8432-2423be5a5a6f-PHP> php src/Sample.php [2024-07-03T09:59:56.716282+00:00] tea-console-log.INFO: {"headers":{"Date":["Wed, 03 Jul 2024 10:00:00 GMT"],"Content-Type":["application/json;charset=utf-8"],"Connection":["keep-alive"],"Keep-Alive":["timeout=25"],"Vary":["Accept-Encoding"],"Access-Control-Allow-Origin":["*"],"Access-Control-Expose-Headers":["*"],"x-acs-request-id":["3BA5A6C3-B296-5895-914A-8147910DE781"],"x-acs-trace-id":["086d8bd615f72d4d27daa5a7a7b4b89a"],"ETag":["22UU6WnEtZKE9S/VA80fvig"]},"statusCode":200,"body":{"Regions":{"Region":[{"LocalName":"China (Qingdao)","RegionEndpoint":"ecs.cn-qingdao.aliyuncs.com","RegionId":"cn-qingdao"},{"LocalName":"China (Beijing)","RegionEndpoint":"ecs.cn-beijing.aliyuncs.com","RegionId":"cn-beijing"},{"LocalName":"China (Zhangjiakou)","RegionEndpoint":"ecs.cn-zhangjiakou.aliyuncs.com","RegionId":"cn-zhangjiakou"},{"LocalName":"China (Hohhot)","RegionEndpoint":"ecs.cn-huhehaote.aliyuncs.com","RegionId":"cn-huhehaote"},{"LocalName":"China (Ulanqab)","RegionEndpoint":"ecs.cn-wulanchabu.aliyuncs.com","RegionId":"cn-wulanchabu"},{"LocalName":"China (Hangzhou)","RegionEndpoint":"ecs.aliyuncs.com","RegionId":"cn-hangzhou"},{"LocalName":"China (Shanghai)","RegionEndpoint":"ecs.cn-shanghai.aliyuncs.com","RegionId":"cn-shanghai"},...]},"RequestId":"3BA5A6C3-B296-5895-914A-8147910DE781"}} [] []
Usar um SDK em um projeto existente
-
Obtenha o SDK: acesse o SDK Center e selecione o produto de nuvem desejado. Este exemplo usa o ECS. Em SDK Version, selecione V2.0 e, em Language, escolha PHP.
A página do SDK lista os requisitos de ambiente: PHP 5.6 ou superior e Composer instalado globalmente. Para instalar o SDK via Packagist, execute o comando
composer require alibabacloud/ecs-20140526 4.1.7. Para usar o espelho Composer da Alibaba Cloud, executecomposer config -g repo.packagist composer https://mirrors.aliyun.com/composer/. Abra o VS Code. Na barra de navegação superior, escolha File > Open Folder. Crie e selecione uma pasta de projeto ou escolha uma pasta existente. Neste exemplo, cria-se e seleciona-se uma pasta chamada phpprojects.
Copie o comando de instalação do SDK e execute-o no terminal.
No painel EXPLORER, clique com o botão direito na área em branco e selecione New File para criar um arquivo PHP. Nomeie o arquivo como demo.php.
-
Inicialize um cliente. É necessário inicializar um cliente antes de chamar operações da API da Alibaba Cloud. Neste exemplo, inicializa-se um cliente ECS.
ImportanteUse um par de AccessKey para concluir a verificação de identidade ao inicializar o cliente. Obtenha um par de AccessKey antecipadamente. Para mais detalhes sobre como obter um par de AccessKey, consulte Criar um AccessKey.
Após obter o par de AccessKey de um usuário RAM, configure-o nas variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
Para mais informações sobre como configurar o endpoint, consulte Endpoints.
<?php use AlibabaCloud\Credentials\Credential\Config; use AlibabaCloud\SDK\Ecs\V20140526\Ecs; class Sample { /** * Create an ECS client instance. * This method initializes and returns an ECS client object that can be used to perform ECS-related operations. * It configures the client by reading the AccessKey ID and AccessKey secret from environment variables, which ensures secure storage and access of sensitive information. * * @return Ecs A configured ECS client instance. */ public static function createClient() { // Create a configuration object. $config = new Config([ "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // Obtain the AccessKey ID of a RAM user from an environment variable. "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // Obtain the AccessKey secret of a RAM user from an environment variable. "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // Set the endpoint for the ECS service. ]); // Use this configuration to create a new Ecs client instance. return new Ecs($config); } } -
Chame a API. Consulte a API Documentation da API desejada. O exemplo a seguir chama a API
DescribeRegionsdo ECS.NotaCada API possui um objeto de solicitação separado que segue a convenção de nomenclatura
${APIName}${Request}, comoDescribeRegionsRequest.<?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 { /** * Create an ECS client instance. * This method initializes and returns an ECS client object that can be used to perform ECS-related operations. * It configures the client by reading the AccessKey ID and AccessKey secret from environment variables, which ensures secure storage and access of sensitive information. * * @return Ecs A configured ECS client instance. */ public static function createClient() { // Create a configuration object. $config = new Config([ "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // Obtain the AccessKey ID of a RAM user from an environment variable. "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // Obtain the AccessKey secret of a RAM user from an environment variable. "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // Set the endpoint for the ECS service. ]); // Use the preceding configuration to create a new Ecs client instance. return new Ecs($config); } /** * * This function demonstrates how to use the SDK client to call the DescribeRegions API operation. * It creates a client instance, constructs a request object, and attempts to call the API operation. * If the call fails, the exception is caught and the error message is printed. */ public static function main() { // Create an SDK client instance. $client = self::createClient(); // Create a DescribeRegionsRequest request object without passing any parameters. $describeRegionsRequest = new DescribeRegionsRequest([]); // Create a RuntimeOptions instance without passing any parameters. $runtime = new RuntimeOptions([]); try { // Call the API operation using the client's describeRegionsWithOptions method. // A try-catch block is used to handle potential exceptions. $result = $client->describeRegionsWithOptions($describeRegionsRequest, $runtime); print_r($result); } catch (Exception $error) { // This is for demonstration purposes only. In a production environment, do not ignore exceptions. var_dump($error->message); } } } Sample::main(); -
Trate exceções. Em ambientes de produção, nunca ignore exceções. Reporte-as, registre logs e tente novamente para garantir a robustez e a estabilidade do sistema. Para mais informações, consulte Tratar uma exceção.
<?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 { /** * Create an ECS client instance. * This method initializes and returns an ECS client object that can be used to perform ECS-related operations. * It configures the client by reading the AccessKey ID and AccessKey secret from environment variables, which ensures secure storage and access of sensitive information. * * @return Ecs A configured ECS client instance. */ public static function createClient() { // Create a configuration object. $config = new Config([ "accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // Obtain the AccessKey ID of a RAM user from an environment variable. "accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // Obtain the AccessKey secret of a RAM user from an environment variable. "endpoint" => "ecs.cn-hangzhou.aliyuncs.com" // Set the endpoint for the ECS service. ]); // Use the preceding configuration to create a new Ecs client instance. return new Ecs($config); } /** * * This function demonstrates how to use the SDK client to call the DescribeRegions API operation. * It creates a client instance, constructs a request object, and attempts to call the API operation. * If the call fails, the exception is caught and the error information is printed. */ public static function main() { // Create an SDK client instance. $client = self::createClient(); // Create a DescribeRegionsRequest request object without passing any parameters. $describeRegionsRequest = new DescribeRegionsRequest([]); // Create a RuntimeOptions instance without passing any parameters. $runtime = new RuntimeOptions([]); try { // Call the API operation using the client's describeRegionsWithOptions method. // A try-catch block is used to handle potential exceptions. $result = $client->describeRegionsWithOptions($describeRegionsRequest, $runtime); print_r($result); } catch (Exception $error) { if ($error instanceof TeaError) { // This is for demonstration purposes only. In a production environment, do not ignore exceptions. print_r("message:" . $error->getMessage() . "\n"); print_r("code:" . $error->getCode() . "\n"); print_r($error->data); } elseif ($error instanceof TeaUnableRetryError) { // This is for demonstration purposes only. In a production environment, do not ignore exceptions. print_r($error->getLastException()); } else { // This is for demonstration purposes only. In a production environment, do not ignore exceptions. print_r("message:" . $error->getMessage()); } } } } Sample::main();
Perguntas frequentes
-
O que fazer se o erro "cURL error 60: SSL certificate problem: unable to get local issuer certificate" ocorrer ao chamar uma operação de API?
Baixe um certificado de autoridade certificadora (CA) confiável, como o da Mozilla. Para mais informações, consulte Certificados CA extraídos da Mozilla.
Configure o caminho do certificado SSL para o PHP. No arquivo php.ini, localize o parâmetro curl.cainfo, defina seu valor como o caminho absoluto do certificado CA e remova o ponto e vírgula inicial (;).
Reinicie o serviço PHP.