Thank you for contributing to rnids/rsreg-epp-client.
This project is a modern RNIDS/RSreg EPP client for PHP 8.1+, with strict typing, deterministic XML behavior, and fluent service APIs.
- PHP 8.1+
- Composer
ext-json
composer install- Keep RNIDS/RSreg behavior explicit and first-class.
- Prefer typed DTOs and small single-purpose methods.
- Keep XML composition/parsing deterministic and namespace-safe.
- Preserve fluent API discoverability from
RNIDS\Cliententry points.
Run these checks before opening a PR:
composer testUseful individual commands:
composer test:unit
composer phpstan
composer phpcs
composer test:coverage
composer test:coverage:ciRun live RNIDS integration tests explicitly:
composer test:liveThese tests depend on external connectivity and credentials/certificates. If preflight conditions are not met, suites are skipped with explicit reasons.
- Use
declare(strict_types=1);in PHP source files. - Use explicit parameter/return types on public methods.
- Mark classes
finalby default unless extension is intentional. - Prefer immutable/readonly DTO-style structures where practical.
- Keep public API names aligned with RNIDS usage terminology.
This repository uses semantic-release and Conventional Commits.
Format:
type(scope): Description starting with a capital letter
Examples:
feat(domain): Add transfer query response mapperfix(xml): Correct namespace registration for host parsertest: Expand session poll integration coverage
Rules:
- Capitalize the first word of the description.
- Do not end the subject line with a period.
- Keep the subject concise (preferably under 72 chars).
Please include:
- A clear summary of what changed and why.
- Any relevant protocol/behavior notes (especially RNIDS-specific behavior).
- Tests added/updated for behavior changes.
- Confirmation that local quality gates pass.
If you change public behavior, update relevant docs in docs/ and cross-link from README.md when appropriate.