kipchak/driver-cloudns 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kipchak/driver-cloudns

Composer 安装命令:

composer require kipchak/driver-cloudns

包简介

A ClouDNS driver for the Kipchak API Development Kit (ADK)

README 文档

README

A fully typed ClouDNS DNS driver for the Kipchak API Development Kit. Manage DNS zones and records using the ClouDNS API directly — no SDK dependency required.

Requirements

  • PHP 8.4+
  • Kipchak ^2
  • kipchak/driver-config ^1
  • kipchak/driver-http ^1

Installation

composer require kipchak/driver-cloudns

Initialise

Add to your drivers/drivers.php:

\Kipchak\Driver\ClouDns\ClouDns::initialise($container);

Configuration

Create config/kipchak.cloudns.php:

<?php

use function Kipchak\Core\env;

return [
    'connections' => [
        'default' => [
            'auth_id'       => env('CLOUDNS_AUTH_ID', ''),
            'auth_password' => env('CLOUDNS_AUTH_PASSWORD', ''),
        ],
    ],
];

Supply exactly one identity key per connection: auth_id, sub_auth_id, or sub_auth_user. auth_password is always required.

Usage

use Kipchak\Driver\ClouDns\ClouDns;
use Kipchak\Driver\ClouDns\Enum\DnsRecordType;
use Kipchak\Driver\ClouDns\Request\AddDnsRecordRequest;
use Kipchak\Driver\ClouDns\Request\ModifyDnsRecordRequest;

$dns = ClouDns::get(); // 'default' connection

// List zones
$zones = $dns->listZones();

// List records
$records = $dns->listRecords('example.com');

// Add an A record
$dns->addRecord('example.com', new AddDnsRecordRequest(
    type:   DnsRecordType::A,
    host:   'api',
    ttl:    3600,
    record: '192.0.2.1',
));

// Modify a record
$dns->modifyRecord('example.com', 123456, new ModifyDnsRecordRequest(
    host:   'api',
    ttl:    300,
    record: '192.0.2.2',
));

// Delete a record
$dns->deleteRecord('example.com', 123456);

GeoDNS

Add GeoDNS-targeted records using the geodnsLocation and geodnsCode parameters:

use Kipchak\Driver\ClouDns\Request\AddDnsRecordRequest;
use Kipchak\Driver\ClouDns\Enum\DnsRecordType;

// Add a GeoDNS A record targeting European visitors
$dns->addRecord('example.com', new AddDnsRecordRequest(
    type:           DnsRecordType::A,
    host:           '@',
    ttl:            60,
    record:         '198.51.100.10',
    geodnsLocation: 7,      // ClouDNS location ID for Europe
    geodnsCode:     'EU',
));

// Modify an existing GeoDNS record
$dns->modifyRecord('example.com', 654321, new ModifyDnsRecordRequest(
    host:           '@',
    ttl:            60,
    record:         '198.51.100.20',
    geodnsLocation: 7,
    geodnsCode:     'EU',
));

GeoDNS requires a zone of type ZoneType::GeoDns. Location IDs and codes are available from the ClouDNS control panel or the list-geodns-locations API endpoint.

Features

  • Multiple named connections (main account, sub-accounts, sub-users)
  • Zone management: list zones, get zone info, page count
  • DNS record management: list, get, add, modify, delete
  • Typed enums for record types (DnsRecordType), zone types (ZoneType), and status (RecordStatus)
  • Typed request objects: AddDnsRecordRequest, ModifyDnsRecordRequest, ListZonesRequest, ListDnsRecordsRequest
  • Typed result objects: ZoneResult, DnsRecordResult
  • Full record-type support: A, AAAA, ALIAS, CAA, CERT, CNAME, DNSKEY, DS, HINFO, HTTPS, LOC, MX, NAPTR, NS, PTR, RP, SMIMEA, SPF, SRV, SSHFP, SVCB, TLSA, TXT, WR
  • GeoDNS record support

Running Tests

composer install
./vendor/bin/phpunit

License

MIT — see LICENSE.

统计信息

  • 总下载量: 691
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固