automattic / domain-services-client
Automattic 域服务 API 的客户端库。
1.6.2
2023-10-24 15:22 UTC
Requires
- php: >=7.4.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- automattic/phpdoc-markdown: ^1.0
- http-interop/http-factory-guzzle: ^1.0
- php-http/mock-client: ^1.0
- phpunit/phpunit: ^9.5
- dev-trunk
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 1.0.0-beta21
- 1.0.0-beta20
- 1.0.0-beta19
- 1.0.0-beta18
- 1.0.0-beta17
- 1.0.0-beta16
- 1.0.0-beta15
- 1.0.0-beta14
- 1.0.0-beta13
- 1.0.0-beta12
- 1.0.0-beta11
- 1.0.0-beta10
- 1.0.0-beta9
- 1.0.0-beta8
- 1.0.0-beta7
- 1.0.0-beta6
- 1.0.0-beta5
- 1.0.0-beta4
- 1.0.0-beta3
- 1.0.0-beta2
- dev-add/tld-spec-helper
- dev-test/changes-to-run-integration-tests-with-backend
- dev-test/integration-tests-with-backend
- dev-add/auto-generated-docs
- dev-update/dns-commands-name
- dev-update/rename-renewal-date
This package is auto-updated.
Last update: 2024-08-24 17:13:58 UTC
README
客户端
Automattic 域服务的客户端代码。
目的
此库用于将 PHP 客户端连接到 Automattic 的域名管理服务。目前仅适用于由 Automattic 托管的应用程序,不适用于其他用例。
安装与使用
要求
- PHP 7.4 及更高版本。(也应与 PHP 8.0 兼容。)
- 还需要一个与 PSR-18 的 ClientInterface 实现兼容的 Http 客户端。
将库添加到您的代码中
如上所述的要求中提到,该包期望一个与 PSR-18 兼容的 HTTP 客户端。这里有一份可用的具有该实现的 HTTP 客户端列表 在此处。以下为 Guzzle 6 和 Guzzle 7 的示例说明。
Guzzle 7
- Guzzle 7 实现了 PSR-18 和 PSR-17 标准,这使得它可以直接与客户端库一起使用。
- 要需要此库和 Guzzle 7(如果尚未安装),完整的命令应该类似于以下内容
composer require automattic/domain-services-client guzzlehttp/guzzle
- 完成此操作后,请确保在您的代码中需要 composer 的自动加载文件
vendor/autoload.php
,如果尚未需要。 - 您可以在 这里查看代码示例
Guzzle 6
- Guzzle 6 没有实现 PSR-18 的 ClientInterface,因此您将需要一个适配器。最常用的适配器之一是 php-http/guzzle6-adapter 包。
- Guzzle 6 还实现了 PSR-17 HTTP Factories。有很多包可以选择,但在这个示例中,我们将使用 http-interop/http-factory-guzzle
- 完整的命令应该类似于以下内容
composer require automattic/domain-services-client php-http/guzzle6-adapter http-interop/http-factory-guzzle
- 完成此操作后,请确保在您的代码中需要 composer 的自动加载文件
vendor/autoload.php
,如果尚未需要。 - 您可以在 这里查看代码示例
入门
请按照 安装程序 进行操作,然后运行以下命令
<?php // Change the path as necessary require_once 'vendor/autoload.php'; use Automattic\Domain_Services_Client\{Api, Command, Configuration, Entity, Response}; // Set the domain to use $domain_name = new Entity\Domain_Name( 'a8ctest.com' ); // Set up a new domain contact $domain_contacts = new Entity\Domain_Contacts( new Entity\Domain_Contact( new Entity\Contact_Information( 'John', 'Doe', '', '123 Main St', '', '23601', 'Utopia', 'ST', 'CC', 'john.doe@example.com', '+1.7575551234', '' ) ) ); // Set up the Contacts\Set command $command = new Command\Domain\Set\Contacts( $domain_name, $domain_contacts ); // Create an optional client transaction ID (useful for finding related log entries) $client_transaction_id = 'client_tx_id_example'; // Configure API key authorization: apiKey $config = Configuration::get_default_configuration() ->set_api_key( 'X-DSAPI-KEY', 'your-key-here' ) ->set_api_key( 'X-DSAPI-USER', 'your-user-here' ); // Using Guzzle 7 $http_client = new GuzzleHttp\Client(); $http_factory = new GuzzleHttp\Psr7\HttpFactory(); $request_factory = new Request\Factory( $http_factory, $http_factory ); $response_factory = new Response\Factory(); $api = new Api( $config, $request_factory, $response_factory, $http_client ); try { // Make the call to the endpoint /** @var Response\Domain\Set\Contacts $response */ $response = $api->post( $command, $client_transaction_id ); // Extract some data from the resopnse echo "Status: " . $response->get_status() . "\n"; echo "Status description: " . $response->get_status_description() . "\n"; echo "New contact ID: " . $response->get_contacts()->get_owner()->get_contact_id()->get_provider_contact_id() . "\n"; } catch (Exception $e) { echo 'Exception when calling Domain_Set_Contacts: ', $e->getMessage(), PHP_EOL; }
运行单元测试
通过 composer
安装依赖项,请按照 上述说明 进行操作
$ composer install
然后运行单元测试
$ ./vendor/bin/phpunit -c ./test/phpunit.xml
许可证
Automattic 域服务客户端的许可证为 GNU 通用公共许可证 v2(或更高版本)。