Skip to content

Release v2.0.0

Latest

Choose a tag to compare

@2177866 2177866 released this 19 Jan 19:52
· 10 commits to main since this release

Highlights

  • Laravel-first DNS checker built on pear/net_dns2 with improved DX: Facade, fluent API, DI contract.
  • Optional typed exceptions for robust try/catch error handling.
  • Laravel Cache integration (Redis/Memcached/Database/File) for DNS result caching, avoiding netdns2 file/shmop cache issues.

Added

  • Facade + DI
    • Alyakin\DnsChecker\Facades\DnsChecker
    • Alyakin\DnsChecker\Contracts\DnsLookup for type-hint injection
  • Fluent API
    • DnsChecker::usingServer(...) ->withTimeout(...) ->setRetries(...) ->query(...)
    • getConfig() / setConfig() / resetConfig() for fluent client config control
  • Config options
    • fallback_to_system (default true) to control system resolver fallback
    • log_nxdomain (default false) to suppress report() on NXDOMAIN
    • throw_exceptions (default false) to throw typed exceptions instead of returning []
    • domain_validator ("Class@method" or null) to validate/disable validation
    • cache.* to enable Laravel Cache-backed caching for DNS query results
  • Typed exceptions
    • DnsRecordNotFoundException (NXDOMAIN)
    • DnsTimeoutException
    • DnsQueryFailedException

Changed

  • Dependency constraint hardening
    • Requires pear/net_dns2 >= 1.5.5 (avoids critical issues in 1.5.4) and supports 2.x.
  • NXDOMAIN handling
    • Correct NXDOMAIN detection for both netdns2 v1 and v2 so log_nxdomain=false suppresses report() consistently.
  • Documentation
    • README rewritten in English and expanded with professional usage/configuration examples.

Migration notes

  • If you want to pin netdns2 to 1.5.x in your project: composer require pear/net_dns2:^1.5.5.
  • To enable exception-based flow: set throw_exceptions=true and catch DnsRecordNotFoundException, DnsTimeoutException, DnsQueryFailedException.
  • To enable Laravel Cache DNS caching: set cache.enabled=true and optionally cache.store='redis' (or leave null to use the default store).

Known considerations

  • retry_count is applied for netdns2 v1; netdns2 v2 does not expose retry_count as an option in the same way.