f21/dnsmadeeasy

一个简单的用于处理 DNSMadeEasy API v2.0 的 PHP 库

1.3.0 2021-01-18 21:24 UTC

This package is auto-updated.

Last update: 2024-09-19 05:33:38 UTC


README

DNSMadeEasy API V2.0 的 PHP 库

这是一个简单的 PHP 库,用于处理 DNSMadeEasy 的 v2.0 API。操作比较底层,尽管如此,如果需要的话,我希望社区可以一起努力构建一个版本,以抽象出大部分底层操作。

支持并实现了 v2.0 API 的所有操作。

目前,我的需求很简单,所以底层操作非常适合我 😄

我从 v1.2 库 中获得了灵感,大部分操作应该是即插即用的,尽管某些操作需要你稍微更新一下代码。

我还进行了一些测试和实验,因为 DME 的 API 文档在某些方面严重缺乏,似乎缺少一些操作,所以大多数这些操作都已被实现。

入门

自动加载

只需包含 Autoloader.php 并初始化它

require_once 'path/to/DNSMadeEasy/Autoloader.php';
DNSMadeEasy\Autoloader::init();

使用库

所有操作都包含在 resource 类中。在 resource 文件夹中查找它们。如果存在正文,库将尝试解码 JSON 对象,因此您可以直接在 body 属性下访问对象。

以下是一个简单的示例

$client = new DNSMadeEasy\Client('myapikey', 'mysecretkey', true); //The last parameter says to use the sandbox
$result = $client->domains()->add('testdomain.com');

if($result->success){
  //yay!
  var_dump($result->statusCode);
  var_dump($result->body);
}else{
  //:(
  var_dump($result->errors);
}

$result2 = $client->domains()->update($result->body->id, array('gtdEnabled' => true)); //Enable global traffic direct for that domain

if($result2->success){
  //yay!
}else{
  //:(
}

调试

该库包含一个漂亮的调试器,您可以查看发送到服务器的请求和相应的响应。

启用

$client->debug(true);

客户端将生成一些 HTML 输出,显示请求和响应。这个特性在浏览器测试时最好使用。

测试

注意:我开始为资源类(表示 DME 操作,如域名、记录等)编写测试,然而,我在尝试在 DME 的沙盒环境中运行它们时遇到了很多问题。主要原因是添加和删除域名的操作对于单元测试来说需要很长时间。删除域名也不会立即删除,我在我的账户中删除了超过几天仍然存在的域名。我现在已经停止了这些测试的工作,但是贡献和拉取请求当然非常受欢迎!我希望有人可以构建一个类似于 fake_braintreefake_DME,这样就可以更容易地测试资源,并且我们可以在 Travis 上运行测试。

要运行测试,您需要设置一些环境变量。在 Linux 上,您可以这样设置

export APIKEY=my_api_key
export SECRETKEY=my_secret_key

然后,只需进入 tests 文件夹并运行 phpunit

cd tests
phpunit