Releases: crwlrsoft/url
Releases · crwlrsoft/url
v1.2.0
v1.1.1
v1.1.0
v1.0.2
v1.0.1
Fixed
- Support for PHP 8.0
- Minor change in Validator because output of PHP's
parse_url is different when an url includes a
delimiter for query or fragment but has no actual query
or fragment (followed by empty string). - Change PHP version requirement in composer.json.
- Only relevant for development: Temporarily add
PHP_CS_FIXER_IGNORE_ENV=1 tocomposer cs
command
until PHP Coding Standards Fixer fully supports
PHP 8.0.
- Minor change in Validator because output of PHP's
- Getting standard ports for schemes on systems where
/etc/services file is missing. PHP's getservbyname()
function uses that file and when it's missing the function
returns false for all schemes. Fixed that by having a list
within the package.
v1.0.0
Added
- Adapter class Uri that implements the PSR-7
UriInterface
. - New methods in
Url
class:authority
: Get or set the full authority part of the url.userInfo
: Get or set the full userInfo part of the url.isRelativeReference
: Returns true when the current url is a relative reference.hasIdn
: Returns true when the current url contains an internationalized domain name in the host component.isEqualTo
: Compare the current url to another one.isComponentEqualIn
: Compare some component of the current url to the same component in another url.
Also with separate methods for all available components:isSchemeEqualIn
isAuthorityEqualIn
isUserEqualIn
isPasswordEqualIn
isUserInfoEqualIn
isHostEqualIn
isDomainEqualIn
isDomainLabelEqualIn
isDomainSuffixEqualIn
isSubdomainEqualIn
isPortEqualIn
isPathEqualIn
isQueryEqualIn
isFragmentEqualIn
- New static validation methods in
Validator
:authority
authorityComponents
userInfo
userInfoComponents
user
password
(alias methodpass
)domainLabel
callValidationByComponentName
- Extracted parsing the host part (and registrable domain if contained) to separate classes
Host
andDomain
. - New class
Helpers
with some static helper methods that are used in several classes. Also static access to instances of classesSuffixes
andSchemes
. - New
InvalidUrlComponentException
that is thrown when you're trying to set an invalid new value for some component.
Changed
- Required PHP version is now 7.2 because PHP 7.0 and 7.1 are no longer actively supported.
- Instances of the Url class can now be created from relative references (without scheme). In v0.1 creating a new instance from a relative reference threw an Exception. If your application expects this behavior, you can use the
isRelativeReference
method of theUrl
object to find out if the url in question is a relative reference. - All methods in
Validator
are now static and all the component validation methods (scheme, host,...) now returnnull
instead offalse
for invalid values.
Further Validating a full url was split into 4 different methods:url
: Returns the validated url as string if input is valid (null
if invalid).urlAndComponents
: Returns an array with validated url as string and all single validated url components (null
if invalid).absoluteUrl
: Same asurl
but only absolute urls are considered valid.absoluteUrlAndComponents
: Same asurlAndComponents
but only absolute urls are valid.
- Switch to
idn_to_ascii
andidn_to_utf8
(respectively symfony/polyfill-intl-idn) to handle parse internationalized domain names. InvalidUrlException
now extendsUnexpectedValueException
instead ofException
.- Class
Store
is now abstract.
Removed
- Method
compare
inUrl
. UseisEqualTo
or the other new comparison methods listed under "Added" above. - Class
Parser
. Most still needed code is moved toHelpers
class. - Move static method
getStandardPortByScheme
from classUrl
to classHelpers
. - Method
userOrPassword
inValidator
. Use methodsuser
orpassword
(pass
) instead.
Fixed
- Version 0.1 had an issue that path, query or fragment could have been double encoded in some cases. This shouldn't happen anymore (see method
encodePercentCharacter
inValidator
).
v0.1.3
Fixed
- Validation of each component is always done for a new url instance, otherwise not percent encoded special characters in path, query or fragment lead to an InvalidUrlException.
- Prevent double encoding percent encoded characters in path, query or fragment.
v1.0 beta
Update suffixes and schemes And add some keywords for packagist and change homepage to overview page of url package in composer.json file.