lemax10/selectel-dns-sdk

Selectel DNS SDK

dev-main 2023-02-19 14:54 UTC

This package is auto-updated.

Last update: 2024-09-06 14:03:01 UTC


README

Selectel DNS SDK - 用于通过公共API操作Selectel DNS服务的库。

配置

该库使用配置文件,其中使用环境变量作为标准工作的默认数据。如果您在支持环境变量的项目中连接包,请使用变量来定义设置

SELECTEL_DOMAIN_REPOSITORY=SelectelDnsSdk\Repositories\DomainRepository
SELECTEL_RECORD_REPOSITORY=SelectelDnsSdk\Repositories\DomainRepository
SELECTEL_DNS_CLIENT_NAME=default
SELECTEL_DNS_CLIENT_CLASS=SelectelDnsSdk\Client
SELECTELD_DNS_CLIENT_TOKEN=#Укажите API TOKEN#

管理器

库实现了一个需要初始化才能开始工作的管理器。示例

$manager = new \SelectelDnsSdk\Manager(require __DIR__ . '/vendor/lemax10/selectel-dns-sdk/config/config.php');

客户端

库实现了通过中间类对Selectel API进行请求的客户端,底层客户端使用GuzzleHttp库。示例

$manager->getClient()

域名

库实现了用于操作域名的存储库,通过管理器可以访问存储库

$manager->getDomains()

存储库的所有方法都使用结果DTO - SelectelDnsSdk\Dtos\Domain。

获取域名列表

在处理列表时,存储库使用生成器。从API中按页加载整个域名列表,每次最多1000个域名,因此调用该方法时,您将获得所有域名

$domainList = $manager->getDomains()->all();
foreach($domainList as $domain) {
    echo "\n". $domain->name;
}

备注>由于需要通过记录存储库处理数据,因此未实现获取域名记录列表的功能

按名称获取域名数据

$domain = $manager->getDomain()->findByName('example.com');
if ($domain === null) {
    die("Домен не найден");
}

echo $domain->name; // example.com

按ID获取域名数据

$domain = $manager->getDomain()->find(2);
if ($domain === null) {
    die("Домен не найден");
}

echo $domain->id; // 2

添加域名

为了添加域名,需要使用DTO - SelectelDnsSdk\Dtos\DomainCreate。示例

$domainCreateDTO = new \SelectelDnsSdk\Dtos\DomainCreate(
    name: 'example.com'
);

$domain = $manager->getDomain()->add($domainCreateDTO);
echo $domain->name; // example.com

删除域名

$state = $manager->getDomain()->delete(2);
echo "\n". $state; // true

// or...
$domain = $manager->getDomain()->findByName('example.com');
$state = $manager->getDomain()->delete($domain);
echo "\n". $state; // true

安装

建议使用 Composer 进行安装。

composer require lemax10/selectel-dns-sdk

安全

如果在包中发现漏洞,请通过电子邮件发送至 vladimir@pyankov.pro。所有安全漏洞都将得到及时修复。请勿公开披露漏洞。

许可证

根据MIT许可证(MIT)分发。有关更多信息,请参阅 许可证文件