aronduby/namecheap

Namecheap API 的 PHP 封装器

dev-master 2015-08-29 22:27 UTC

This package is auto-updated.

Last update: 2024-09-17 10:01:06 UTC


README

这是一个 Namecheap API 的库。它支持所有最新的 Namecheap API 方法,并可以使用 composer 进行安装。最初只是 Humen/Namecheap 的一个分支,但后来我进行了大量的破坏性更改,包括如何与类和解析器交互,因此将其切换到自己的仓库。

需求

  • PHP 5.3.0 或更高版本

安装

要安装 Namecheap,请使用以下 composer require 语句

    "require": {
        "aronduby/namecheap": "dev-master"
    }

用法

require 'vendor/autoload.php';

$api_user = 'YOUR-API-USERNAME';
$api_key = 'YOUR-API-KEY';
$client_ip = 'YOUR-IP-ADDRESS';
$sandbox = true;

$namecheap = new Namecheap\Wrapper($api_user, $api_key, $client_ip, $sandbox);
$response = $namecheap->domains()->getTldList();

if($response->success === true){
	$response->getData();
} else {
	$response->getErrors();
}

解析器

XML 到 Array 的解析是通过来自 Outlandish 博客的以下函数完成的。从 CommandResponse 开始的节点将被返回为嵌套关联数组,其中节点名称是键,属性以 @ 为前缀,文本值以 $ 为前缀。

因此,这个调用

$rsp = $namecheap->domains()->dns()->getEmailForwarding(['DomainName' => 'test.com']);

会从 $rsp->getRaw() 得到以下 XML

<?xml version="1.0" encoding="utf-8"?>
<ApiResponse Status="OK" xmlns="http://api.namecheap.com/xml.response">
 <Errors />
 <Warnings />
 <RequestedCommand>namecheap.domains.dns.getEmailForwarding</RequestedCommand>
 <CommandResponse Type="namecheap.domains.dns.getEmailForwarding">
   <DomainDNSGetEmailForwardingResult Domain="test.com">
     <Forward mailboxid="19935" mailbox="info">test@gmail.com</Forward>
     <Forward mailboxid="19936" mailbox="webmaster">test@grcmc.org</Forward>
   </DomainDNSGetEmailForwardingResult>
 </CommandResponse>
 <Server>PHX01SBAPI01</Server>
 <GMTTimeDifference>--4:00</GMTTimeDifference>
 <ExecutionTime>1.379</ExecutionTime>
</ApiResponse>

这会从 $rsp->getData() 得到以下数组

[
 "@Type" => "namecheap.domains.dns.getEmailForwarding",
 "DomainDNSGetEmailForwardingResult" => [
   [
     "@Domain" => "test.com",
     "Forward" => [
       [
         "@mailboxid" => "19935",
         "@mailbox" => "info",
         "$" => "test@gmail.com",
       ],
       [
         "@mailboxid" => "19936",
         "@mailbox" => "webmaster",
         "$" => "test@gmail.com",
       ],
     ],
   ],
 ],
]

如果您喜欢直接与 SimpleXml 对象工作,只需调用 $response->getXml()

待办事项

  • 编写单元测试
  • 编写 DTO 以强制调用严格性

许可

MIT 许可证 (MIT)

版权所有 (c) 2013 Vouga Labs

特此授予任何获得此软件及其相关文档文件(“软件”)副本的人,在不受限制的情况下使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许软件的提供者为此目的而使用软件,但受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和不受侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他原因引起的,无论该索赔、损害或其他责任是否与软件或软件的使用或其他方式有关。