All Notable changes to PHP Domain Parser
starting from the 5.x series will be documented in this file
TimeToLive::until
TimeToLive::fromDurationString
.gitattributes
files to be filter out.TimeToLive
marked as internalHost::toUnicode
method MUST never throw exceptions on conversion according to RFC3490.UnableToResolveDomain
typo in the exception message
TimeToLive::fromDateTimeInterface
useTimeToLive::fromNow
TimeToLive::fromScalar
useTimeToLive::convert
- None
- Adding proper Interfaces
- Added
Domain::clear
to easily initialize an empty domain object - Added
Domain::slice
to easily slice a domain object - Added
ResolvedDomain
object to normalize Resolver results. - Added
Suffix
object to replace thePublicSuffix
object from v5. - Public Suffix List and IANA Top Level Domain List are fully decoupled
- Added
Idna
, IDN support has been completely revamped - Added internal
Stream
class, to improve path/stream resolution - Resolver uses by default UTS#46 IDNA2008 algorithm to convert domain names
- Storage capability is now optional and can be based on PHP-FIG related interfaces to improve interoperability
Pdp\TopLevelDomains::getIANADomain
which throws on syntax error and if no effective TLD is found (behave likePdp\TopLevelDomains::resolve
in v5).
- The
Pdp\Domain
class not longer directly exposes Effective TLD status. - Effective TLD resolver (
Pdp\Rules::resolve
andPdp\TopLevelDomains::resolve
) no longer accept IDNA options. Rules::getICANNDomain
,Rules::getPrivateDomain
will throw even if aPublicSuffix
is found but does not belong to the correct PSL section.Pdp\TopLevelDomains::resolve
acts likePdp\Rules::resolve
and only throw onTypeError
- None
__toString
and__debugInfo
usage- Support for PHP7.4-
- Composer script for automatic updates of the remote databases
- CLI command
bin/update-psl
Pdp\Cache
,Pdp\CacheException
: The package PSR-16 Cache implementation using the underlying filesystem.Pdp\HttpClient
,Pdp\CurlHttpClient
andPdp\HttpClientException
: The package Http Client.Pdp\Installer
,Pdp\Manager
: The package source manager and installerPdp\Logger
, The package logger implementationPdp\Rules::ALL_DOMAINS
constant deprecated in version 5.3Pdp\Domain::getDomain
deprecated in version 5.3Pdp\Domain::resolve
Pdp\Domain::getPublicSuffix
replaced byPdp\ResolvedDomain::suffix
Pdp\Domain::getRegistrableDomain
replaced byPdp\ResolvedDomain::registrableDomain
Pdp\Domain::getSubDomain
replaced byPdp\ResolvedDomain::subDomain
Pdp\Domain::withPublicSuffix
replaced byPdp\ResolvedDomain::withSuffix
Pdp\Domain::getLabel
replaced byPdp\Domain::label
Pdp\Domain::isTransitionalDifferent
replaced byPdp\IdnaInfo::isTransitionalDifferent
Pdp\PublicSuffix
replaced byPdp\Suffix
- Accessing suffix information from the
Pdp\Domain
object is no longer possible you need to do it fromPdp\Suffix
Pdp\TopLevelDomains::contains
without replacement- Internal Converter classes (implementation details are no longer exposed).
- None
- Added support for PHP8 see #289 based on works by @szepeviktor
- None
- None
- None
- Cache throws when cache directory doesn't exist #280
- None
- None
Rules::getCookieDomain
Rules::getICANNDomain
Rules::getPrivateDomain
CouldNotResolvePublicSuffix::dueToUnresolvableDomain
- Improve type hinting and return type by dropping EOL PHP versions support.
- Improve development environment by dropping EOL PHP versions support.
- Composer script
- None
- Support for PHP7.0 and PHP7.1
- The external data from IANA and mozilla is no longer part of the package and will be downloaded only on demand on composer update/install.
- A simple
Psr3
compatible logger class which output the logs to you cli console.
composer.json
updated to be composer 2.0 ready- package bundle installer is rewritten to improve its usage see #249 and #250
- None
- None
-
PublicSuffix::labels
andDomain::labels
to return the VO labels see #241 -
IDNAConverterTrait::parse
(internal)
- Don't swallow cache errors #232
- Update travis settings to allow testing against future version of PHP.
IDNAConverterTrait::setLabels
replaced byIDNAConverterTrait::parse
(internal)
- None
Pdp\TopLevelDomains
to allow resolving domain againts IANA Root zone databasePdp\TLDConverter
converts the IANA Root Zones database into an associative arrayPdp\Manager::getTLDs
a service to return a cache version of the IANA Root zone databasePdp\Manager::refreshTLDs
a service to refresh the cache version of the IANA Root zone database- added a new
$ttl
parameter to improve PSR-16 supports toPdp\Manager::__construct
Pdp\Manager::getRules
Pdp\Manager::refreshRules
Pdp\Exception\CouldNotLoadTLDs
exception
Pdp\IDNAConverterTrait::setLabels
improve IDN domain handlingPdp\IDNAConverterTrait
throws aUnexpectedValueException
if the Intl extension is misconfigured see #230
- None
- None
Pdp\PublicSuffixListSection
interface implemented byPdp\Rules
andPdp\PublicSuffix
Pdp\DomainInterface
interface implemented byPdp\Domain
andPdp\PublicSuffix
Pdp\Domain::getContent
replacesPdp\Domain::getDomain
Pdp\Domain::withLabel
adds a new label to thePdp\Domain
.Pdp\Domain::withoutLabel
removes labels from thePdp\Domain
.Pdp\Domain::withPublicSuffix
updates thePdp\Domain
public suffix part.Pdp\Domain::withSubDomain
updates thePdp\Domain
sub domain part.Pdp\Domain::append
appends a label toPdp\Domain
.Pdp\Domain::prepend
prepends a label toPdp\Domain
.Pdp\Domain::resolve
attach a public suffix to thePdp\Domain
.Pdp\Domain::isResolvable
tells whether the currentPdp\Domain
can have a public suffix attached to it or not.Pdp\PublicSuffix::createFromDomain
returns a newPdp\PublicSuffix
object from aPdp\Domain
objectPdp\Exception
sub namespace to organize exception. All exception extends thePdp\Exception
class to prevent BC break.
Pdp\Domain
domain part computation (public suffix, registrable domain and sub domain)Pdp\Domain
andPdp\PublicSuffix
host validation compliance to RFC improved- Improve
Pdp\Converter
andPdp\Manager
class to better report error on IDN conversion. - Improve
Pdp\Installer
vendor directory resolution see PR #222 Pdp\Exception
nows extendsInvalidArgumentException
instead ofRuntimeException
Pdp\Domain::getDomain
use insteadPdp\Domain::getContent
Pdp\Rules::ALL_DOMAINS
use the empty string instead
- None
Pdp\Rules::getPublicSuffix
returns aPdp\PublicSuffix
value objectPdp\Rules::__set_state
is implementedPdp\Domain::toUnicode
returns aPdp\Domain
with its value converted to its Unicode formPdp\Domain::toAscii
returns aPdp\Domain
with its value converted to its AScii formPdp\PublicSuffix::toUnicode
returns aPdp\PublicSuffix
with its value converted to its Unicode formPdp\PublicSuffix::toAscii
returns aPdp\PublicSuffix
with its value converted to its AScii form
Pdp\Domain::getDomain
returns the normalized form of the domain namePdp\PublicSuffix
is no longer internal.- Normalizes IDN conversion using a internal
IDNConverterTrait
- Internal code improved by requiring PHPStan for development
- None
- None
Pdp\Rules::createFromPath
named constructor to returns a new instance from a pathPdp\Rules::createFromString
named constructor to returns a new instance from a string
- None
- None
- None
Pdp\Exception
a base exception for the libraryPdp\Rules
a class to resolve domain name against the public suffix listPdp\Domain
an immutable value object to represents a parsed domain namePdp\Installer
a class to enable improve PSL maintenancePdp\Cache
a PSR-16 file cache implementation to cache a local copy of the PSLPdp\Manager
a class to enable managing PSL sources andRules
objects creationPdp\Converter
a class to convert the PSL into a PHP array
- invalid domain names improved supported
- idn_* conversion error better handled
- domain name with RFC3986 encoded string improved supported
- None
- PHP5 support
- URL Parsing capabilities and domain name validation
Pdp\PublicSuffixList
class replaced by thePdp\Rules
classPdp\PublicSuffixManager
class replaced by thePdp\Manager
classPdp\HttpAdapter\HttpAdapterInterface
interface replaced by thePdp\HttpClient
interfacePdp\HttpAdapter\CurlHttpAdapter
class replaced by thePdp\CurlHttpClient
class