File: upgrading.md

package info (click to toggle)
php-league-uri-src 7.5.1-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,712 kB
  • sloc: php: 16,698; javascript: 127; makefile: 43; xml: 36
file content (64 lines) | stat: -rw-r--r-- 2,351 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---
layout: default
title: Upgrading from 1.x to 2.x
---

# Upgrading from 1.x to 2.x

`uri-components:2.0` is a new major version that comes with backward compatibility breaks.

This guide will help you migrate from a 1.x version to 2.0. It will only explain backward incompatibility breaks, it will not present the new features ([read the documentation for that](/components/2.0/)).

## Installation

If you are using composer then you should update the require section of your `composer.json` file.

~~~
composer require league/uri-components:^2.0
~~~

This will edit (or create) your `composer.json` file.

## PHP version requirement

`uri-components:2.0` requires a PHP version greater or equal than 7.2.0 (was previously 7.0.0).

## Package replacements and conflicts

This package:

- replaces and deprecates without conflicting the `uri-query-parser` package.
- partially replaces and deprecates without conflicting the `uri-manipulation` package.

## Removed features

### Host Public Suffix Resolution

This package no longer expose API to resolve Public Suffix List in Host. We recommend using a dedicated package for that like [PHP Domain Parser](https://github.com/jeremykendall/php-domain-parser).

### Everything is final

Components objects are now all marked as final and implements at least one interface.

To use them you can either typehint against their interfaces or against a specific implementation but you can no longer extend them.

### UriComponentInterface

Because this new package targets PHP7.2+ the:
 
- `UriComponentInterface::isEmpty`; 
- `UriComponentInterface::isNull`;

methods are removed in favor of `UriComponentInterface::getContent()` method.

Also, the `UriComponentInterface::getContent()` method no longer takes any parameter and always returns the RFC3986 version of the URI component.

### Host

The `Host` object no longer is iterable or exposes label related methods. To be able to access the host lables you need to instantiate a `Domain` object.
All information regarding Public Suffix information has been removed from the package.

### Query

The `Query` object public API has been updated to better match the [WHATWG URL living standard URLSearchParams class](https://url.spec.whatwg.org/#interface-urlsearchparams).
You will need to upgrade your code to match this specification expected values.