You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for contributing to `rnids/rsreg-epp-client`.
4
+
5
+
This project is a modern RNIDS/RSreg EPP client for PHP 8.1+, with strict typing, deterministic XML behavior, and fluent service APIs.
6
+
7
+
## Development setup
8
+
9
+
### Requirements
10
+
11
+
- PHP 8.1+
12
+
- Composer
13
+
-`ext-json`
14
+
15
+
### Install dependencies
16
+
17
+
```bash
18
+
composer install
19
+
```
20
+
21
+
## Project standards
22
+
23
+
- Keep RNIDS/RSreg behavior explicit and first-class.
24
+
- Prefer typed DTOs and small single-purpose methods.
25
+
- Keep XML composition/parsing deterministic and namespace-safe.
26
+
- Preserve fluent API discoverability from `RNIDS\Client` entry points.
27
+
28
+
## Quality gates
29
+
30
+
Run these checks before opening a PR:
31
+
32
+
```bash
33
+
composer test
34
+
```
35
+
36
+
Useful individual commands:
37
+
38
+
```bash
39
+
composer test:unit
40
+
composer phpstan
41
+
composer phpcs
42
+
composer test:coverage
43
+
composer test:coverage:ci
44
+
```
45
+
46
+
### Live integration suite
47
+
48
+
Run live RNIDS integration tests explicitly:
49
+
50
+
```bash
51
+
composer test:live
52
+
```
53
+
54
+
These tests depend on external connectivity and credentials/certificates. If preflight conditions are not met, suites are skipped with explicit reasons.
55
+
56
+
## Coding conventions
57
+
58
+
- Use `declare(strict_types=1);` in PHP source files.
59
+
- Use explicit parameter/return types on public methods.
60
+
- Mark classes `final` by default unless extension is intentional.
61
+
- Prefer immutable/readonly DTO-style structures where practical.
62
+
- Keep public API names aligned with RNIDS usage terminology.
63
+
64
+
## Commit message format
65
+
66
+
This repository uses semantic-release and Conventional Commits.
67
+
68
+
Format:
69
+
70
+
```text
71
+
type(scope): Description starting with a capital letter
72
+
```
73
+
74
+
Examples:
75
+
76
+
-`feat(domain): Add transfer query response mapper`
77
+
-`fix(xml): Correct namespace registration for host parser`
78
+
-`test: Expand session poll integration coverage`
79
+
80
+
Rules:
81
+
82
+
- Capitalize the first word of the description.
83
+
- Do not end the subject line with a period.
84
+
- Keep the subject concise (preferably under 72 chars).
85
+
86
+
## Pull requests
87
+
88
+
Please include:
89
+
90
+
1. A clear summary of what changed and why.
91
+
2. Any relevant protocol/behavior notes (especially RNIDS-specific behavior).
92
+
3. Tests added/updated for behavior changes.
93
+
4. Confirmation that local quality gates pass.
94
+
95
+
## Documentation updates
96
+
97
+
If you change public behavior, update relevant docs in `docs/` and cross-link from `README.md` when appropriate.
<h3align="center"style="margin-top: 0px">Modern Dependency-Safe PHP Client for RNIDS Registry EPP</h3>
4
5
5
-
This package provides a fluent, RNIDS-first API with deterministic XML generation, typed DTOs internally, and predictable command execution over native stream transport.
This library provides a fluent, RNIDS-first implementation of the EPP protocol for PHP 8.1+ applications.
14
+
It focuses on deterministic XML handling, typed request/response modeling, strict transport behavior, and predictable command execution for RNIDS/RSreg environments.
15
+
16
+
## Key Features
17
+
18
+
1. RNIDS-first API design with fluent entry points for session, domain, contact, and host operations.
19
+
2. Deterministic EPP request lifecycle over native stream transport and frame codec boundaries.
20
+
3. Typed service-layer DTOs and normalized response mapping for reliable integrations.
21
+
4. Explicit protocol/transport exception strategy under `RNIDS\Exception\*`.
22
+
5. Separate XML composition/parsing modules for easier testing and maintenance.
23
+
6. Coverage-aware quality gate with static analysis and coding standards checks.
6
24
7
25
## Installation
8
26
27
+
Install via Composer:
28
+
9
29
```bash
10
30
composer require rnids/rsreg-epp-client
11
31
```
12
32
13
-
## Requirements
14
-
15
-
- PHP 8.1+
16
-
-`ext-json`
17
-
- Network access to RNIDS/RSreg EPP endpoint
18
-
- TLS certificates configured in client config when required by your environment
0 commit comments