Skip to content

Requirements

Requirements

These are the constraints the Composer resolver actually enforces, plus the extensions the DNSSEC module needs at runtime. Nothing here is invented.

Enforced by Composer

From composer.json:

Requirement Constraint Why
PHP ^8.4 Language baseline (developed and CI-tested on 8.4 and 8.5).
ext-sockets * The raw UDP/TCP transport of SocketResolver.

There are no runtime package dependencies — this is a zero-dependency library.

Needed by the DNSSEC module

The DNSSEC validator verifies signatures with two extensions. They are not hard Composer constraints, because the resolver, domain verification, propagation, and the non-DNSSEC diagnostics all work without them — only DNSSEC validation calls into them:

Extension Used for
ext-openssl RSA and ECDSA (P-256 / P-384) signature verification.
ext-sodium Ed25519 signature verification.

Both are part of a standard PHP distribution. If you validate DNSSEC on a build that lacks them, verification of the affected algorithm family cannot succeed.

Optional: internationalized names

Extension Used for
ext-intl Punycode (IDN → A-label) conversion of non-ASCII domain names.

Purely ASCII names need nothing extra. ext-intl is required only when you look up a Unicode name (e.g. blåbærgrød.dk); without it, a non-ASCII name is refused rather than silently queried as the wrong name. It is listed under Composer suggest, not require.

Development

Dev-only tooling (from require-dev), not needed to consume the package:

Tool Constraint
laravel/pint ^1.18
pestphp/pest ^3.5 || ^4.0
phpstan/phpstan ^2.0

Framework

None. This library is framework-agnostic — it does not depend on Laravel or any other framework, and it is namespaced Cbox\Dns\.