Creating Registrar Modules
Guide to creating custom domain registrar modules
Creating a Domain Registrar Module
Step 1: Create Module Directory
/modules/registrars/yourregistrar/
Step 2: Create module.json
{
"name": "yourregistrar",
"display_name": "Your Registrar",
"description": "Domain registrar integration",
"version": "1.0.0"
}
Step 3: Create Registrar Class
Create YourregistrarRegistrar.php implementing ModuleInterface.
Required Actions
Registrar modules should implement these actions:
check_domain: Check domain availabilityregister_domain: Register a new domainrenew_domain: Renew an existing domaintransfer_domain: Transfer domain from another registrarget_domain_info: Get domain information (expiry, status, etc.)
Example Implementation
public function execute($action, $params = []) {
switch ($action) {
case 'check_domain':
return $this->checkDomain($params);
case 'register_domain':
return $this->registerDomain($params);
case 'renew_domain':
return $this->renewDomain($params);
case 'transfer_domain':
return $this->transferDomain($params);
default:
return ['success' => false, 'error' => 'Unknown action'];
}
}
private function checkDomain($params) {
$domain = $params['domain'] ?? '';
// Call registrar API to check availability
// Return: ['success' => true, 'available' => true|false, 'price' => 0.00]
return [
'success' => true,
'available' => true,
'price' => 10.99
];
}
Example: Domainbox Registrar
See /modules/registrars/domainbox/DomainboxRegistrar.php for a complete reference implementation.