upmind/domainnameapi-sdk
A PHP SDK for the DomainNameAPI service, giving Laravel and PHP apps a clean client for domain registration, transfers, renewals, availability checks, and contact management. Wraps API requests and responses so you can integrate registrar operations without writing raw HTTP calls.
psr/log to ^2.0 || ^3.0 removes the most common install-time conflict with modern Laravel and PSR-3 logging stacks. That converts "can we even install this cleanly alongside our framework version" from an open engineering question into a yes — which is a genuine schedule unblock, not a cosmetic change.psr/log widening in v1.1 makes this wiring viable across Laravel versions instead of a version-pinning exercise.wsdltophp/packagebase v5). Regenerated stubs can shift method signatures, type hints, and exception surfaces without any registrar-side change. Budget a re-validation cycle on every upstream release; the alternative is discovering a signature change in production.RegistrarInterface. Generated method signatures leak quickly and make swapping expensive later — and v1.1 demonstrates exactly why: the public surface can move for reasons unrelated to your product.Adopt when: the stack is PHP 8.1+ / Laravel; DomainNameApi is already or nearly chosen as the reseller registrar; the required scope is the standard lifecycle (check, register, transfer, renew, DNS, privacy, EPP) rather than exotic registrar features; and you accept owning a facade, error mapping, and tests on top, because the package itself is generated and thin.
Signals it fits: you want a domain add-on shipped in weeks, you already run queues/crons for renewals, PSR-3 logging is wired into your stack, and you're on Laravel 10/11 (where the psr/log ^3.0 allowance removes the previous install friction).
Look elsewhere when:
packagebase v5 regeneration means the diff between v1.0 and v1.1 is not guaranteed to be source-compatible. If a signature change would ripple through controllers or jobs, that is an argument for the adapter, not against the package.Mitigations if adopted: pin the exact version (and lock the v1.0 → v1.1 upgrade behind a reviewed diff), snapshot the WSDL, wrap it behind your own interface, add sandbox contract tests that run on every dependency bump, use idempotency keys on money-moving calls, and budget roughly half an engineer-week per year for upkeep plus a re-validation cycle per upstream release.
Executives. "A free, MIT-licensed PHP client that lets us plug domain registration, transfer, and renewal into the billing platform in weeks instead of building a registrar integration from scratch. The latest release is a compatibility refresh — it moves the client onto PHP 8.1 and current logging libraries, which means it installs cleanly into our modern Laravel stack and requires no extra work from us. It's a tactical accelerator, not a strategic dependency — we wrap it so we can swap registrars without a rewrite. The cost is a small internal wrapper and test suite, not a license fee. The risk is that it's a tiny, low-traffic package with no community, so we own maintenance; that's a bounded, known cost, and we should expect the occasional forced re-validation when upstream regenerates the code."
Engineering. "Still WSDL-generated SOAP stubs with a thin entry point and PSR-3 logging. v1.1 regenerates against wsdltophp/packagebase v5.0.4 / packagegenerator v4.1.13 on PHP 8.1, and widens psr/log to ^2.0 || ^3.0 — that last bit is the practical win, since it stops fighting Laravel 10/11's logger constraint. Treat the regeneration as a potential source-compatible-but-not-guaranteed diff: read it before bumping, and re-run contract tests. Plan unchanged: an adapter implementing our own registrar interface, explicit mapping from registrar faults to domain-level errors (domain taken, invalid auth code, insufficient balance, invalid TLD), idempotency on registrations and renewals, retries with backoff, and sandbox contract tests. Never call it directly from controllers or jobs. The PHP 8.1 floor is now a hard requirement of this path."
Framing note for both. The package's low opportunity score and zero dependents still make it a dependency to contain, not a bet to make. v1.1 improves the odds it installs without a fight and shows the maintainer is still regenerating it; it does not change the shape of the bet. Value comes entirely from what we build around it.
How can I help you explore Laravel packages today?