Skip to content

rumantic/ispmanager-php-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISPManager PHP API

An English documentation is not ready, please use Google Translator

Этот код - попытка накидать клиент для API панели управления сервером ISPManager на PHP. В моем случае - я использую DNS хостинг, поэтому сделал все под себя (только управление ДНС). Однако, вы без труда, разбереретесь как напрогать классы для управления определенным разделом этой панели. Если у вас есть вопросы, с удовольствием на них отвечу.

Использование

Установка:

composer require rumantic/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
}

About

Manage an ISPManager panel with PHP

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%