Skip to content

Commit

Permalink
4.0.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
nyamsprod committed Sep 23, 2015
1 parent 5a6e225 commit a22120c
Show file tree
Hide file tree
Showing 94 changed files with 107 additions and 197 deletions.
118 changes: 14 additions & 104 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,129 +2,39 @@

All Notable changes to `League\Url` will be documented in this file

## Next - 2015-XX-XX
## 4.0.0 - 2015-09-23

### Added

- `Intl` extension is now required to use the library
- `FileInfo` extension is now required to use the library
- Domain parsing capabilities to `Host` using `jeremykendall/php-domain-parser` package
- A `UriParser` class to parse an URI according to RFC3986 rules, the library no longer depend on PHP `parse_url` function
- The `QueryParser` is now a standalone class to parse and build a query string according to RFC3986 rules.
- `UriParser` to parse an URI according to RFC3986 rules
- `QueryParser` to parse and build a query string according to RFC3986 rules.
- `League\Uri\Schemes\Generic\AbstractUri` to enable better URI extension
- Modifiers classes to modify URI objects in an uniform way for interoperability
- URI Modifiers classes to modify URI objects in an uniform way for interoperability
- A `Data` class to specifically manipulate `data` schemed URI
- A `Http` class to specifically manipulate `http`,`https` schemed URI
- A `Ftp` class to specifically manipulate `ftp` schemed URI
- A `Ws` class to specifically manipulate `ws`, `wss` schemed URI
- A `DataPath` component class to manipulate Data-uri path component
- A `HierarchicalPath` to manipulate Hierarchical-like path component
- Support for IPv6 zone identifier
- Re-introduced `Host::toAscii` and adding `Host::isIdn` method
- API to add/remove the `Path` leading and trailing slash.
- `Query::ksort` method
- Missing `User` and `Pass` Interfaces
- `Host::getLiteral` to get the raw IP representation of a Ip Literal hostname
- `Path::relativize` to generate relative path
- Support for IP host

### Fixed

- Move namespace from `League\Url` to `League\Uri` to avoid dependency hell
- Renamed methods for consistency with PHP naming conventions
- userinfo string representation `:` delimiter was added unnecessarily
- Host::__toString return the hostname in Unicode or ASCII depending on the user submission
- Host::toUnicode now returns a new Host instance
- Host now support append/prepend/replacing to or with IPv4 Host type
- `HierarchicalPath` now supports multiple leading slash
- Formatter::format accept `Uri`, PSR-7 `UriInterface` and `UriPart` implemented objects
- `Host` now iterate from the top-level label to the last subdomain (from right to left)
- The `Query::merge` method only accept `League\Uri\Interfaces\Query` objects or query string
- `Collection::filter` method can now use PHP's `array_filter` constants in PHP 5.6+
- Uri components classes are fixed to comply to `RFC3986`
- Uri components classes are now all immutable value objects

### Remove

- `Uri::isAbsolute`
- `Uri::sameValueAs`
- `Scheme::isSupported`, `Scheme::getStandardPort`, `Port::getStandardSchemes`.
- Support for `PHP 5.4`
- All partial modifier methods attached to an URI object are removed and replaced by URI Modifiers classes

## 4.0.0-beta-3 - 2015-06-09

### Added

- `isEmpty` method to `League\Url\Interfaces\Url` to tell whether a URL is empty or not
- `isSupported` static method to `League\Url\Scheme` to tell whether a specified scheme is supported by the library
- Improve decoding invalid punycode host labels
- Add support for `gopher` scheme

## Fixed

- Invalid Punycode should still be allowed and not produce any error [issue #73](https://github.com/thephpleague/url/issues/73)

## 4.0.0-beta-2 - 2015-06-05

## Fixed
- remove useless optional argument from `Path::getUriComponent`

## 4.0.0-beta-1 - 2015-06-03

### Added

- Package structure is changed to better reflect the importance of each component.
### Deprecated

- `League\Url\Interfaces\Url`
- now implements `Psr\Http\Message\UriInterface`
- `resolve` to create new URL from relative URL
- add proxy methods to ease partial component modifications

- `League\Url\Interfaces\UrlPart`
- UrlParts implementing object can be compared using the `sameValueAs`

- `League\Url\Interfaces\Component`
- `modify` to create a new instance from a given component;

- `League\Url\Interfaces\CollectionComponent`:
- The interface is simplified to remove ambiguity when manipulating Host and Path objects.

- `League\Url\Interfaces\Host`:
- implements IPv4 and IPv6 style host
- `__toString` method now always return the ascii version of the hostname

- `League\Url\Interfaces\Path`:
- `withoutDotSegment` remove dot segment according to RFC3986 rules;
- `withoutDuplicateDelimiters` remove multiple adjacent delimiters;
- `getBasename` returns the trailing path;
- manage the trailing path extension using `getExtension` and `withExtension`;

- `League\Url\Interfaces\Query`:
- The interface is simplified to remove ambiguity and allow setting default values for missing keys;
- The object no longer depends on php `parse_str`

- `League\Url\Interfaces\Scheme` and `League\Url\Interfaces\Port`:
- support for listing and detecting standard port for a given scheme in both objects with
- `Interfaces\Port::getStandardSchemes`
- `Interfaces\Port::useStandardScheme`
- `Interfaces\Scheme::getStandardPorts`
- `Interfaces\Scheme::hasStandardPort`

- `League\Url\UserInfo` class added to better manipulate URL user info part

- The `Url` class as well as all components classes are now immutable value objects.
- The `League\Url\Output\Formatter` class is added to ease Url formatting
- The package is more RFC3986 compliant

### Deprecated
- Nothing

### Fixed
- Handling of legacy hostname suffixed with a "." when using `Url::createFromServer`

### Remove
- `League\Url\Components\User` and `League\Url\Components\Pass`
- Support for `PHP 5.3`
- `UrlImmutable` class
- Most of the public API is removed :
- to comply to `RFC3986`;
- to enable immutable value object;
- to implement `PSR7` UriInterface;

- Support for `PHP 5.4` and `PHP 5.3`
- Dependency on PHP `parse_url`, `parse_str` and `http_build_query` functions
- Dependency on the `True/php-punycode` library
- `League\Url\Url`, `League\Url\UrlImmutable`, `League\Url\UrlConstants` classes
- Most of the public API is removed
2 changes: 1 addition & 1 deletion src/Components/AbstractComponent.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/AbstractHierarchicalComponent.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/DataPath.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Fragment.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/HierarchicalPath.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Host.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/HostIpTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/HostnameInfoTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/HostnameTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Pass.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Path.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/PathTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Port.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/Scheme.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Components/UserInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Formatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Component.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/DataPath.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Fragment.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/HierarchicalComponent.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/HierarchicalPath.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Host.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Pass.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Path.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
2 changes: 1 addition & 1 deletion src/Interfaces/Port.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* League.Url (http://url.thephpleague.com)
*
* @package League.uri
* @package League.url
* @author Ignace Nyamagana Butera <[email protected]>
* @copyright 2013-2015 Ignace Nyamagana Butera
* @license https://github.com/thephpleague/uri/blob/master/LICENSE (MIT License)
Expand Down
Loading

0 comments on commit a22120c

Please sign in to comment.