stereoflo / ispmanager-php-api
v2.0
2019-05-12 03:20 UTC
Requires
- php: ^7.1
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^7.3
This package is auto-updated.
Last update: 2024-09-15 21:36:43 UTC
README
英文文档尚未准备就绪,请使用谷歌翻译
此代码是尝试为ISPManager服务器管理面板的API编写PHP客户端。在我的情况下,我使用DNS托管,因此所有操作都是为了自己定制(仅限于DNS管理)。然而,您很容易理解如何为管理该面板的特定部分编写类。如果您有任何问题,我将很乐意回答。
使用
安装
composer require stereoflo/ispmanager-php-api
准备服务器和用户
include 'vendor/autoload.php'; $server = new \IspApi\Server\Server('server', 1500); $credentials = new \IspApi\Credentials\Credentials('user', 'password'); $format = new \IspApi\Format\JsonFormat(); $client = new \IspApi\HttpClient\CurlClient(); // тут может быть любой ваш http клиент
准备操作
准备获取域名列表
$getDomainList = new \IspApi\Func\Dns\GetList();
准备删除域名
$deleteDomain = new \IspApi\Func\Dns\Delete('domain.ru');
准备添加域名
$addDomain = new \IspApi\Func\Domain\Add(); $addDomain->setAdditional([ 'name' => 'domain.ru', 'ip' => '127.0.0.1', 'ns' => 'dns3.domain.net. dns1.domain.net. dns2.domain.net.', 'ns_list' => '', 'mx' => 'mail', 'mx_list' => '', 'elid' => '', 'sok' => 'ok', ]);
准备获取所选域名的记录列表
$listEntriesByDomain = new \IspApi\Func\Dns\Record\GetList('domain.ru');
准备删除所选域名的记录
$deleteDomainEntry = new \IspApi\Func\Dns\Record\Delete('test A 127.0.0.1', 'domain.ru');
准备添加记录到域名
$addItemToDomain = new \IspApi\Func\Dns\Record\Add('', 'domain.ru'); $addItemToDomain->setAdditional([ 'name' => 'test1', 'sdtype' => 'A', 'addr' => '127.0.0.1', 'prio' => '', 'wght' => '', 'port' => '', 'elid' => '', 'sok' => 'ok', ]);
准备获取SOA记录
$getSoaRecord = new \IspApi\Func\Dns\Soa\GetSoa('domain.ru');
准备更改SOA记录
$domainSoaEdit = new \IspApi\Func\Dns\Soa\Edit('domain.ru'); $domainSoaEdit->setAdditional([ 'primary' => 'dns3.domain.net.', 'email' => 'info@domain.net', 'serial' => '2018012514', 'refresh' => '10800', 'retry' => '3600', 'expire' => '604800', 'ttl' => '3600', 'sok' => 'ok', ]);
创建IspManager实例并设置之前准备的对象以供后续使用
$ispManager = new IspApi\IspManager(); $response = $ispManager->setServer($server) ->setCredentials($credentials) ->setFunc($getDomainList) ->setHttpClient($client) ->setFormat($format);
执行/获取
请注意,setFunc是安装预先准备好的操作(如上所述)
try { $result = $ispManager->setFunc($domainSoaEdit)->execute(); //do something } catch (\Exception $exception) { var_dump($exception); //do something }