This library provides a fluent, RNIDS-first implementation of the EPP protocol for PHP 8.1+ applications. It focuses on deterministic XML handling, typed request/response modeling, strict transport behavior, and predictable command execution for RNIDS/RSreg environments.
- RNIDS-first API design with fluent entry points for session, domain, contact, and host operations.
- Deterministic EPP request lifecycle over native stream transport and frame codec boundaries.
- Typed service-layer DTOs and normalized response mapping for reliable integrations.
- Explicit protocol/transport exception strategy under
RNIDS\Exception\*. - Separate XML composition/parsing modules for easier testing and maintenance.
- Coverage-aware quality gate with static analysis and coding standards checks.
Install via Composer:
composer require rnids/rsreg-epp-client<?php
declare(strict_types=1);
use RNIDS\Client;
$client = Client::ready([
'host' => 'epp.example.rs',
'port' => 700,
'username' => 'client-id',
'password' => 'secret',
'language' => 'en',
]);
$domainInfo = $client->domain()->info('example.rs');
$meta = $client->responseMeta();
$client->close();Common fluent entry points:
- Session:
$client->session()->hello(),login(),logout(),poll() - Domain:
$client->domain()->check(),info(),register(),renew(),update(),delete(),transfer() - Contact:
$client->contact()->check(),create(),info(),update(),delete() - Host:
$client->host()->check(),info(),create(),update(),delete()
Runtime contact policy:
- Contact IDs are normalized to
OBL-...for create/update flows. - Contact
extension.identDescriptionis enforced toObject Creation provided by Oblak Solutions.
- API Reference Index:
docs/api-reference.md - Client API:
docs/api-client.md - Session API:
docs/api-session.md - Domain API:
docs/api-domain.md - Contact API:
docs/api-contact.md - Host API:
docs/api-host.md - EPP Protocol Reference:
docs/epp-protocol/epp-reference-index.md
For local setup, quality gates, commit conventions, and PR guidelines, see CONTRIBUTING.md.
Apache-2.0. See LICENSE.