lemax10 / selectel-dns-sdk
Selectel DNS SDK
dev-main
2023-02-19 14:54 UTC
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.2
Requires (Dev)
- phpunit/phpunit: ^9.3.3
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)分发。有关更多信息,请参阅 许可证文件。