f21 / dnsmadeeasy
一个简单的用于处理 DNSMadeEasy API v2.0 的 PHP 库
Requires
- php: >=5.4.0
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_braintree 的 fake_DME
,这样就可以更容易地测试资源,并且我们可以在 Travis 上运行测试。
要运行测试,您需要设置一些环境变量。在 Linux 上,您可以这样设置
export APIKEY=my_api_key export SECRETKEY=my_secret_key
然后,只需进入 tests
文件夹并运行 phpunit
cd tests
phpunit