Open-source PHP
Registrar API
Isang PHP library para pamahalaan ang mga domain sa NameSilo, GoDaddy, Namecheap, at Dynadot — kasama ang Cloudflare adapter para sa zones, DNS, at cache. Availability check, pagpaparehistro, pag-renew, paglilipat, DNS records, at nameservers, lahat sa pamamagitan ng iisang tugmang interface.
composer require josuamarcelc/registrar-api
Mga adapter
Mga suportadong registrar
Pumili ng adapter gamit ang brand string. Lahat ng adapter ay may parehong method signatures, kaya puwede kang lumipat ng registrar nang hindi muling isinusulat ang iyong code.
Live Demo
Tingnan kung available ang domain
Nagpapatakbo ng totoong checkAvailability() na tawag sa pamamagitan ng NameSilo adapter, sa panig ng server. Maglagay ng hanggang 10 domain na pinaghihiwalay ng kuwit, espasyo, o bagong linya. Limitado sa 10 check kada 5 minuto.
Mabilis na simula
Tatlong linya para sa gumaganang tawag
<?php
require __DIR__ . '/vendor/autoload.php';
use RegistrarAPI\RegistrarAPI;
$api = RegistrarAPI::make('namesilo', [
'api_key' => 'YOUR_NAMESILO_API_KEY'
]);
$result = $api->checkAvailability(['example.com', 'mybrand.io']);
print_r($result);
Mga kredensyal
Config kada adapter
Ang bawat adapter ay tumatanggap ng config array. Nasa ibaba ang pinakamababang kailangan mo kadalasan.
NameSilo
RegistrarAPI::make('namesilo', [
'api_key' => 'YOUR_KEY',
]); GoDaddy
RegistrarAPI::make('godaddy', [
'api_key' => 'KEY',
'api_secret' => 'SECRET',
// optional: 'base' => 'https://api.godaddy.com/v1'
]); Namecheap
RegistrarAPI::make('namecheap', [
'api_user' => 'USERNAME',
'api_key' => 'KEY',
'client_ip' => 'SERVER_PUBLIC_IP',
// optional: 'base' => 'https://api.namecheap.com/xml.response'
]); Dynadot
RegistrarAPI::make('dynadot', [
'api_key' => 'KEY',
]); Mga method
Mga karaniwang operasyon
Ipinapatupad ng bawat adapter ang parehong method signatures. Ang mga return value ay normalized associative array.
// Availability
$api->checkAvailability(['example.com']);
// Lifecycle
$api->registerDomain('example.com', [
'years' => 1,
'privacy' => true,
'auto_renew' => true,
'registrant' => [ /* contact fields */ ],
]);
$api->renewDomain('example.com', 1);
$api->transferDomain('example.com', ['auth_code' => 'EPP']);
$api->getDomain('example.com');
// DNS records
$api->getDNS('example.com');
$api->setDNS('example.com', [
['type'=>'A', 'host'=>'@', 'value'=>'203.0.113.10', 'ttl'=>600],
['type'=>'CNAME','host'=>'www', 'value'=>'@', 'ttl'=>600],
]);
$api->addDNS('example.com', ['type'=>'TXT','host'=>'@','value'=>'v=spf1 -all','ttl'=>300]);
$api->delDNS('example.com', ['type'=>'TXT','host'=>'@']);
// Nameservers
$api->setNameServers('example.com', ['ns1.host.com','ns2.host.com']);
// Escape hatch — call any raw endpoint the adapter doesn't wrap
$api->raw('domains/suggestions?query=mybrand&limit=5');
Hugis ng response
Ano ang matatanggap mo
bool — mabilis na tsek kung tagumpaycheckAvailability(){type,host,value,ttl,prio?} na ibinabalik ng getDNS()Bonus
Cloudflare adapter
Parehong library, parehong hugis, pero para sa zones, DNS records, cache purge, at mga libreng toggle (Always HTTPS, Auto HTTPS Rewrites, Brotli, Minify, Rocket Loader, Dev Mode).
$cf = RegistrarAPI::make('cloudflare', ['api_token' => 'CF_TOKEN']);
$cf->createZone('example.com');
$cf->setDNS('example.com', [
['type'=>'A','host'=>'@','value'=>'198.51.100.10','ttl'=>300,'proxied'=>true],
]);
$cf->purgeEverything('example.com'); Mag-ambag
Magdagdag ng bagong registrar sa isang file
Gumawa ng class sa src/adapters/ na nag-e-extend sa BaseAdapter at ipatupad ang mga abstract method. Awtomatiko itong kukunin ng Composer.
namespace RegistrarAPI\Adapters;
use RegistrarAPI\Core\BaseAdapter;
class MyRegistrar extends BaseAdapter {
protected string $brand = 'myregistrar';
public function checkAvailability(array $domains): array { /* ... */ }
public function registerDomain(string $domain, array $opts): array { /* ... */ }
public function renewDomain(string $domain, int $years=1, array $opts=[]): array { /* ... */ }
public function transferDomain(string $domain, array $opts): array { /* ... */ }
public function getDomain(string $domain): array { /* ... */ }
public function getDNS(string $domain): array { /* ... */ }
public function setDNS(string $domain, array $records): array { /* ... */ }
public function addDNS(string $domain, array $record): array { /* ... */ }
public function delDNS(string $domain, array $selector): array { /* ... */ }
public function setNameServers(string $domain, array $nameservers): array { /* ... */ }
public function raw(string $op, array $params=[]): array { /* ... */ }
}