stereoflo/ispmanager-php-api

安装: 138

依赖: 0

建议者: 0

安全: 0

星标: 9

关注者: 7

分支: 12

公开问题: 1

类型:项目

v2.0 2019-05-12 03:20 UTC

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
}