From 6cffe8c6e7e2e012ec71699a0948065b48b6bc48 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sat, 9 May 2026 02:45:37 +0300 Subject: [PATCH 01/44] construct.xml Fix classname and extra `e.g.` --- reference/uri/uri/whatwg/url/construct.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/whatwg/url/construct.xml b/reference/uri/uri/whatwg/url/construct.xml index 3eb638ca6930..ed65edc96713 100644 --- a/reference/uri/uri/whatwg/url/construct.xml +++ b/reference/uri/uri/whatwg/url/construct.xml @@ -14,7 +14,7 @@ arraysoftErrors&null; - Constructs the Uri\Rfc3986\Uri object. + Constructs the Uri\WhatWg\Url object. @@ -25,7 +25,7 @@ uri - A valid URL string to parse (e.g. /foo or (e.g. https://example.com/foo). + A valid URL string to parse (e.g. /foo or https://example.com/foo). From 1307081e32649a5a0f8c87a344e9e1e13d1bb1f6 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sat, 9 May 2026 03:38:20 +0300 Subject: [PATCH 02/44] getasciihost.xml Add more relevant non-ASCII URL for example --- reference/uri/uri/whatwg/url/getasciihost.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/whatwg/url/getasciihost.xml b/reference/uri/uri/whatwg/url/getasciihost.xml index 0f239f583868..0b4cbf6275bd 100644 --- a/reference/uri/uri/whatwg/url/getasciihost.xml +++ b/reference/uri/uri/whatwg/url/getasciihost.xml @@ -35,16 +35,16 @@ getAsciiHost(); -?> ]]> &example.outputs; From 9c89360c515044b29a915fe37cf5496ced63a6bb Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sat, 9 May 2026 13:03:34 +0300 Subject: [PATCH 03/44] parse.xml Remove extra `e.g` and add missing `;` in the example And is the return type `?static` accurate and not `?self` or literally `?Uri\WhatWg\Url`, and doesn't it confuse the reader, since the class is final? --- reference/uri/uri/whatwg/url/parse.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/whatwg/url/parse.xml b/reference/uri/uri/whatwg/url/parse.xml index a14cb5ebf7a8..16cbff137e45 100644 --- a/reference/uri/uri/whatwg/url/parse.xml +++ b/reference/uri/uri/whatwg/url/parse.xml @@ -25,7 +25,7 @@ uri - A valid URL string to parse (e.g. /foo or (e.g. https://example.com/foo). + A valid URL string to parse (e.g. /foo or https://example.com/foo). @@ -66,6 +66,7 @@ ]]> &example.outputs; From 151cf5b7c8c6456ed8f0a73a468efdde7fc92b0c Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Tue, 12 May 2026 13:42:36 +0300 Subject: [PATCH 04/44] toasciistring.xml Give an URL relevant for the example --- reference/uri/uri/whatwg/url/toasciistring.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/whatwg/url/toasciistring.xml b/reference/uri/uri/whatwg/url/toasciistring.xml index f53c6f5b2016..1556c46156d6 100644 --- a/reference/uri/uri/whatwg/url/toasciistring.xml +++ b/reference/uri/uri/whatwg/url/toasciistring.xml @@ -36,16 +36,16 @@ toAsciiString(); -?> ]]> &example.outputs; From da424b2d27a218b3c5c2a8073e5cfbe25e018e12 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 14 May 2026 03:42:58 +0300 Subject: [PATCH 05/44] tounicodestring.xml Show how method works --- reference/uri/uri/whatwg/url/tounicodestring.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/whatwg/url/tounicodestring.xml b/reference/uri/uri/whatwg/url/tounicodestring.xml index c45b34fd134a..8e6c0d86cbe6 100644 --- a/reference/uri/uri/whatwg/url/tounicodestring.xml +++ b/reference/uri/uri/whatwg/url/tounicodestring.xml @@ -35,16 +35,16 @@ toUnicodeString(); -?> ]]> &example.outputs; From f6dc5380b1219b3560eacd643eb2e109cd8915ab Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 14 May 2026 04:53:28 +0300 Subject: [PATCH 06/44] unserialize.xml Let's deserialize the array, not the parameter --- reference/uri/uri/whatwg/url/unserialize.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/whatwg/url/unserialize.xml b/reference/uri/uri/whatwg/url/unserialize.xml index 0a18cacb8718..2f6b3286eba1 100644 --- a/reference/uri/uri/whatwg/url/unserialize.xml +++ b/reference/uri/uri/whatwg/url/unserialize.xml @@ -2,7 +2,7 @@ Uri\WhatWg\Url::__unserialize - Deserialize the data parameter into a Url object + Deserialize the array from the data parameter into a Url object @@ -12,7 +12,7 @@ arraydata - Deserializes a data parameter into a Uri\WhatWg\Url object. + Deserializes the &array; from the data parameter into a Uri\WhatWg\Url object. From 7733e376496b7d5a47bead83d268d17d06f40460 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 18:50:23 +0300 Subject: [PATCH 07/44] getfragment.xml Show how the method works --- reference/uri/uri/rfc3986/uri/getfragment.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getfragment.xml b/reference/uri/uri/rfc3986/uri/getfragment.xml index 0fecabee30e8..1dc44a5262c5 100644 --- a/reference/uri/uri/rfc3986/uri/getfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getfragment.xml @@ -35,16 +35,16 @@ getFragment(); -?> ]]> &example.outputs; From a9c0dab9d7ed4cc740f972c2ced11ff0466bc13c Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 18:57:25 +0300 Subject: [PATCH 08/44] getfragment.xml Clarify fragment normalization --- reference/uri/uri/rfc3986/uri/getfragment.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/uri/uri/rfc3986/uri/getfragment.xml b/reference/uri/uri/rfc3986/uri/getfragment.xml index 1dc44a5262c5..eb167f56eaa2 100644 --- a/reference/uri/uri/rfc3986/uri/getfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getfragment.xml @@ -13,6 +13,7 @@ Retrieves the normalized fragment component. + Normalization converts hex-triplets to uppercase and decodes percent-encoded unreserved characters. From 0ff3052cd8f78d0d9d94481d9fde429be69c0f7b Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:25:00 +0300 Subject: [PATCH 09/44] language-snippets.ent Add the URI normalization snippet --- language-snippets.ent | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/language-snippets.ent b/language-snippets.ent index d98bb6831217..8ef86187d5d3 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -4436,6 +4436,12 @@ local: { '> + + Normalization converts hex-triplets to uppercase and decodes percent-encoded unreserved characters. + +'> + Date: Sun, 17 May 2026 19:26:25 +0300 Subject: [PATCH 10/44] getfragment.xml Replace a literal sentence with a variable --- reference/uri/uri/rfc3986/uri/getfragment.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/getfragment.xml b/reference/uri/uri/rfc3986/uri/getfragment.xml index eb167f56eaa2..23b477d02c22 100644 --- a/reference/uri/uri/rfc3986/uri/getfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getfragment.xml @@ -13,7 +13,7 @@ Retrieves the normalized fragment component. - Normalization converts hex-triplets to uppercase and decodes percent-encoded unreserved characters. + &uri.normalization; From b5542a633e25761fab5b8b5d8e5e8345d71867e4 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:27:20 +0300 Subject: [PATCH 11/44] gethost.xml Clarify normalization --- reference/uri/uri/rfc3986/uri/gethost.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/uri/uri/rfc3986/uri/gethost.xml b/reference/uri/uri/rfc3986/uri/gethost.xml index 4a033e4bfea9..7b38d8bf3398 100644 --- a/reference/uri/uri/rfc3986/uri/gethost.xml +++ b/reference/uri/uri/rfc3986/uri/gethost.xml @@ -13,6 +13,7 @@ Retrieves the normalized host component. + &uri.normalization; From 20a132b9c5cbaa5bc8d9be5105bb5098c9e1849a Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:28:44 +0300 Subject: [PATCH 12/44] getfragment.xml Move the normalization description to a `simpara` --- reference/uri/uri/rfc3986/uri/getfragment.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/getfragment.xml b/reference/uri/uri/rfc3986/uri/getfragment.xml index 23b477d02c22..58b2aad53c9e 100644 --- a/reference/uri/uri/rfc3986/uri/getfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getfragment.xml @@ -13,8 +13,8 @@ Retrieves the normalized fragment component. - &uri.normalization; + &uri.normalization; From 0a937a5ca1b2558abc90fe13af48c2fe2fa7fdd4 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:29:12 +0300 Subject: [PATCH 13/44] gethost.xml Move the normalization description to a `simpara` --- reference/uri/uri/rfc3986/uri/gethost.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/gethost.xml b/reference/uri/uri/rfc3986/uri/gethost.xml index 7b38d8bf3398..c26fa1e8d622 100644 --- a/reference/uri/uri/rfc3986/uri/gethost.xml +++ b/reference/uri/uri/rfc3986/uri/gethost.xml @@ -13,8 +13,8 @@ Retrieves the normalized host component. - &uri.normalization; + &uri.normalization; From 8d0dc93bb6334b1ef403d533be49bac2bf81113f Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:31:48 +0300 Subject: [PATCH 14/44] gethost.xml Show an example of normalization --- reference/uri/uri/rfc3986/uri/gethost.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/gethost.xml b/reference/uri/uri/rfc3986/uri/gethost.xml index c26fa1e8d622..b1e5df80d806 100644 --- a/reference/uri/uri/rfc3986/uri/gethost.xml +++ b/reference/uri/uri/rfc3986/uri/gethost.xml @@ -36,10 +36,10 @@ getHost(); -?> ]]> &example.outputs; From 22c1ae370b8a0822430cba290fd3eeadefa125b6 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:34:57 +0300 Subject: [PATCH 15/44] getpassword.xml Add normalization description --- reference/uri/uri/rfc3986/uri/getpassword.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/uri/uri/rfc3986/uri/getpassword.xml b/reference/uri/uri/rfc3986/uri/getpassword.xml index a5a6d271745f..1a0ff8b8fff7 100644 --- a/reference/uri/uri/rfc3986/uri/getpassword.xml +++ b/reference/uri/uri/rfc3986/uri/getpassword.xml @@ -15,6 +15,7 @@ Retrieves the normalized password part (the text after the first : character) from the userinfo component. + &uri.normalization; From 080bdb45e3e6d26576c0c7ee8b47cd109d4e8bc1 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:45:44 +0300 Subject: [PATCH 16/44] getpath.xml Mention normalization mechanism --- reference/uri/uri/rfc3986/uri/getpath.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/uri/uri/rfc3986/uri/getpath.xml b/reference/uri/uri/rfc3986/uri/getpath.xml index e302667ff34f..45e2a648afaa 100644 --- a/reference/uri/uri/rfc3986/uri/getpath.xml +++ b/reference/uri/uri/rfc3986/uri/getpath.xml @@ -14,6 +14,7 @@ Retrieves the normalized path component. + &uri.normalization; From 77632069e7f70785166506a000cbac31cca74359 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 19:49:38 +0300 Subject: [PATCH 17/44] getpath.xml Show how the method works --- reference/uri/uri/rfc3986/uri/getpath.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getpath.xml b/reference/uri/uri/rfc3986/uri/getpath.xml index 45e2a648afaa..0e2a641a06d2 100644 --- a/reference/uri/uri/rfc3986/uri/getpath.xml +++ b/reference/uri/uri/rfc3986/uri/getpath.xml @@ -36,10 +36,10 @@ getPath(); -?> ]]> &example.outputs; From 0f20265c5d2e885db65f92bdffba928034444ec2 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:07:36 +0300 Subject: [PATCH 18/44] getport.xml Remove the mention of normalization ```PHP_METHOD(Uri_Rfc3986_Uri, getPort) { php_uri_property_read_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_URI_PROPERTY_NAME_PORT, PHP_URI_COMPONENT_READ_MODE_RAW); }``` Judging by the source code, the `port` component, unlike the `password` or the `host` components, is not normalized. It seems that the mention of normalization was included in the description by mistake :) ```PHP_METHOD(Uri_Rfc3986_Uri, getPassword) { php_uri_property_read_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_URI_PROPERTY_NAME_PASSWORD, PHP_URI_COMPONENT_READ_MODE_NORMALIZED_ASCII); }``` --- reference/uri/uri/rfc3986/uri/getport.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getport.xml b/reference/uri/uri/rfc3986/uri/getport.xml index f62387858b9c..1e4f93e5bdb1 100644 --- a/reference/uri/uri/rfc3986/uri/getport.xml +++ b/reference/uri/uri/rfc3986/uri/getport.xml @@ -2,7 +2,7 @@ Uri\Rfc3986\Uri::getPort - Retrieve the normalized port component + Retrieve the port component @@ -12,7 +12,7 @@ - Retrieves the normalized port component. + Retrieves the port component. @@ -24,7 +24,7 @@ &reftitle.returnvalues; - Returns the normalized port component as an &integer; if the port component exists, &null; is returned otherwise. + Returns the port component as an &integer; if the port component exists, &null; is returned otherwise. @@ -35,10 +35,10 @@ getPort(); -?> ]]> &example.outputs; From 857d3f521d3ef9f281e1e85693181cbeedf427e9 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:12:07 +0300 Subject: [PATCH 19/44] getquery.xml Add the normalization description + show how the method works --- reference/uri/uri/rfc3986/uri/getquery.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getquery.xml b/reference/uri/uri/rfc3986/uri/getquery.xml index 2ae16d783772..3887289fb54e 100644 --- a/reference/uri/uri/rfc3986/uri/getquery.xml +++ b/reference/uri/uri/rfc3986/uri/getquery.xml @@ -14,6 +14,7 @@ Retrieves the normalized query component. + &uri.normalization; @@ -35,10 +36,10 @@ getQuery(); -?> ]]> &example.outputs; From 471a19e475f3c65dca7fe5ff8041e07ee11cc7aa Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:29:20 +0300 Subject: [PATCH 20/44] language-snippets.ent Add the non-normalization snippet --- language-snippets.ent | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/language-snippets.ent b/language-snippets.ent index 8ef86187d5d3..4988a905f88f 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -4438,7 +4438,13 @@ local: { - Normalization converts hex-triplets to uppercase and decodes percent-encoded unreserved characters. + Hexadecimal triplets are converted to uppercase, and percent-encoded unreserved characters are decoded. + +'> + + + Hexadecimal triplets are not converted to uppercase, and percent-encoded unreserved characters are not decoded. '> From 73d83b3c348fa1567ed9203efecdf07b1736471f Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:30:33 +0300 Subject: [PATCH 21/44] getrawfragment.xml Add the non-normalization desc --- reference/uri/uri/rfc3986/uri/getrawfragment.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/reference/uri/uri/rfc3986/uri/getrawfragment.xml b/reference/uri/uri/rfc3986/uri/getrawfragment.xml index f2e6256bfc3d..0b9bcc227691 100644 --- a/reference/uri/uri/rfc3986/uri/getrawfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getrawfragment.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) fragment component. + &uri.non-normalization; From 3157925ff2f6eba585c2dc6cbc70920d830916ea Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:35:59 +0300 Subject: [PATCH 22/44] getrawfragment.xml Show how the method works --- reference/uri/uri/rfc3986/uri/getrawfragment.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawfragment.xml b/reference/uri/uri/rfc3986/uri/getrawfragment.xml index 0b9bcc227691..2d467387d9ac 100644 --- a/reference/uri/uri/rfc3986/uri/getrawfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getrawfragment.xml @@ -36,16 +36,16 @@ getRawFragment(); -?> ]]> &example.outputs; From 0d596524a04cf5cf2f171694e6a5acc66c2a0b4d Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:42:52 +0300 Subject: [PATCH 23/44] getrawhost.xml Describe non-normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getrawhost.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawhost.xml b/reference/uri/uri/rfc3986/uri/getrawhost.xml index 66798f2af8e8..273fe7483e57 100644 --- a/reference/uri/uri/rfc3986/uri/getrawhost.xml +++ b/reference/uri/uri/rfc3986/uri/getrawhost.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) host component. + &uri.non-normalization; @@ -35,7 +36,8 @@ getRawHost(); ?> @@ -44,7 +46,7 @@ echo $uri->getRawHost(); &example.outputs; From e084ce48c2570817095282fd3e90b77f9bdbd858 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:44:36 +0300 Subject: [PATCH 24/44] Update getrawhost.xml --- reference/uri/uri/rfc3986/uri/getrawhost.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawhost.xml b/reference/uri/uri/rfc3986/uri/getrawhost.xml index 273fe7483e57..dc2e431a31f4 100644 --- a/reference/uri/uri/rfc3986/uri/getrawhost.xml +++ b/reference/uri/uri/rfc3986/uri/getrawhost.xml @@ -40,7 +40,6 @@ $uri = new \Uri\Rfc3986\Uri("https://ex%61mple.com"); echo $uri->getRawHost(); -?> ]]> &example.outputs; From c1bf5548f7d3a4818344336735ba5e77bf7675e7 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:52:02 +0300 Subject: [PATCH 25/44] getrawpassword.xml Describe non-normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getrawpassword.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawpassword.xml b/reference/uri/uri/rfc3986/uri/getrawpassword.xml index cbf4a8367347..468a441f2ee0 100644 --- a/reference/uri/uri/rfc3986/uri/getrawpassword.xml +++ b/reference/uri/uri/rfc3986/uri/getrawpassword.xml @@ -15,6 +15,7 @@ Retrieves the raw (non-normalized) password part (the text after the first : character) from the userinfo component. + &uri.non-normalization; @@ -38,16 +39,16 @@ getRawPassword(); -?> ]]> &example.outputs; From bc0b4a63175229009301a56f4e8ae2a335913f4a Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 20:56:20 +0300 Subject: [PATCH 26/44] getrawpath.xml Describe non-normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getrawpath.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawpath.xml b/reference/uri/uri/rfc3986/uri/getrawpath.xml index 82779af66927..2a07926478d1 100644 --- a/reference/uri/uri/rfc3986/uri/getrawpath.xml +++ b/reference/uri/uri/rfc3986/uri/getrawpath.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) path component. + &uri.non-normalization; @@ -35,16 +36,16 @@ getRawPath(); -?> ]]> &example.outputs; From 0cd7197ae6394ca3ae2cc93324beee7693d2fc40 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:09:40 +0300 Subject: [PATCH 27/44] getrawquery.xml Describe non-serialization + show how the method works --- reference/uri/uri/rfc3986/uri/getrawquery.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawquery.xml b/reference/uri/uri/rfc3986/uri/getrawquery.xml index 7b0323f79f27..342666617b81 100644 --- a/reference/uri/uri/rfc3986/uri/getrawquery.xml +++ b/reference/uri/uri/rfc3986/uri/getrawquery.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) query component. + &uri.non-normalization; @@ -35,16 +36,16 @@ getRawQuery(); -?> ]]> &example.outputs; From 1d4be5d6ab412d06e6e2b3ffa06f6fa496eeef82 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:15:51 +0300 Subject: [PATCH 28/44] getrawscheme.xml Describe non-normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getrawscheme.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawscheme.xml b/reference/uri/uri/rfc3986/uri/getrawscheme.xml index ff6130f94537..26b822fc5481 100644 --- a/reference/uri/uri/rfc3986/uri/getrawscheme.xml +++ b/reference/uri/uri/rfc3986/uri/getrawscheme.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) scheme component. + &uri.non-normalization; @@ -35,16 +36,16 @@ getRawScheme(); -?> ]]> &example.outputs; From 8d94c78be269a9e613881625c7632009f7101cb6 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:20:38 +0300 Subject: [PATCH 29/44] getrawuserinfo.xml Describe non-normalization + amend the example --- reference/uri/uri/rfc3986/uri/getrawuserinfo.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml b/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml index 57a32f30a165..7b0080c88848 100644 --- a/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml +++ b/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml @@ -14,6 +14,7 @@ Retrieves the raw (non-normalized) userinfo component. + &uri.non-normalization; @@ -35,16 +36,16 @@ getRawUserInfo(); -?> ]]> &example.outputs; From 269582faacebca7bc22dbe0af411893d3f4c28d4 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:29:20 +0300 Subject: [PATCH 30/44] getrawpassword.xml Remove the mention of... ...an non-normalized in the return section for consistency with other methods --- reference/uri/uri/rfc3986/uri/getrawpassword.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawpassword.xml b/reference/uri/uri/rfc3986/uri/getrawpassword.xml index 468a441f2ee0..1d5f5625d531 100644 --- a/reference/uri/uri/rfc3986/uri/getrawpassword.xml +++ b/reference/uri/uri/rfc3986/uri/getrawpassword.xml @@ -26,7 +26,7 @@ &reftitle.returnvalues; - Returns the raw (non-normalized) password as a &string; if the userinfo component contains a : character. + Returns the raw password as a &string; if the userinfo component contains a : character. An empty string is returned when the userinfo component doesn't contain a : character. &null; is returned when the userinfo component doesn't exist. From dd6182594bf12891557035b0c202538db93c2310 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:30:23 +0300 Subject: [PATCH 31/44] getrawusername.xml Describe non-normalization --- reference/uri/uri/rfc3986/uri/getrawusername.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getrawusername.xml b/reference/uri/uri/rfc3986/uri/getrawusername.xml index 5dff1a6903af..bf2e8fe17764 100644 --- a/reference/uri/uri/rfc3986/uri/getrawusername.xml +++ b/reference/uri/uri/rfc3986/uri/getrawusername.xml @@ -15,6 +15,7 @@ Retrieves the raw (non-normalized) username part (the text before the first : character) from userinfo component. + &uri.non-normalization; @@ -25,7 +26,7 @@ &reftitle.returnvalues; - Returns the raw (non-normalized) username as a &string; if the userinfo component exists, &null; is returned otherwise. + Returns the raw username as a &string; if the userinfo component exists, &null; is returned otherwise. @@ -36,16 +37,16 @@ getRawUsername(); -?> ]]> &example.outputs; From a0106801b1381c2368fbe0c2be0c42d29fb900e0 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:38:12 +0300 Subject: [PATCH 32/44] getscheme.xml Describe normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getscheme.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getscheme.xml b/reference/uri/uri/rfc3986/uri/getscheme.xml index 81ad886924a7..1bce56e0f24b 100644 --- a/reference/uri/uri/rfc3986/uri/getscheme.xml +++ b/reference/uri/uri/rfc3986/uri/getscheme.xml @@ -14,6 +14,7 @@ Retrieves the normalized scheme component. + &uri.normalization; @@ -35,10 +36,10 @@ getScheme(); -?> ]]> &example.outputs; From 79b1bfb290c48880c9ebdc4823b488d37f9e2d8d Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:41:52 +0300 Subject: [PATCH 33/44] getuserinfo.xml Describe normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getuserinfo.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getuserinfo.xml b/reference/uri/uri/rfc3986/uri/getuserinfo.xml index cd8cf4b9975e..1b4321ff67c5 100644 --- a/reference/uri/uri/rfc3986/uri/getuserinfo.xml +++ b/reference/uri/uri/rfc3986/uri/getuserinfo.xml @@ -14,6 +14,7 @@ Retrieves the normalized userinfo component. + &uri.normalization; @@ -35,10 +36,10 @@ getUserInfo(); -?> ]]> &example.outputs; From bf787158e005df42db61448e55566268d03e1cb8 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 21:49:49 +0300 Subject: [PATCH 34/44] getusername.xml Describe normalization + show how the method works --- reference/uri/uri/rfc3986/uri/getusername.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/getusername.xml b/reference/uri/uri/rfc3986/uri/getusername.xml index 717753632e8b..d3eca5ea32cd 100644 --- a/reference/uri/uri/rfc3986/uri/getusername.xml +++ b/reference/uri/uri/rfc3986/uri/getusername.xml @@ -15,6 +15,7 @@ Retrieves the normalized username part (the text before the first : character) from the userinfo component. + &uri.normalization; @@ -36,10 +37,10 @@ getUsername(); -?> ]]> &example.outputs; From ff5c2134089e8ce2329583c76a6e83583c6f9687 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 22:03:23 +0300 Subject: [PATCH 35/44] Update language-snippets.ent --- language-snippets.ent | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/language-snippets.ent b/language-snippets.ent index 4988a905f88f..3c84b2447c23 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -4438,13 +4438,13 @@ local: { - Hexadecimal triplets are converted to uppercase, and percent-encoded unreserved characters are decoded. + Hexadecimal triplets are converted to uppercase, percent-encoded unreserved characters are decoded, and the scheme and host components are normalized to lowercase per RFC 3986. '> - Hexadecimal triplets are not converted to uppercase, and percent-encoded unreserved characters are not decoded. + Components are returned in their original form; hexadecimal triplets are not converted to uppercase, unreserved characters remain encoded, and case folding is not applied. '> From 0730d396ae03ee3624ddb2ea2d1d0704e530cb28 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 22:08:49 +0300 Subject: [PATCH 36/44] Update parse.xml Add missed `;` --- reference/uri/uri/rfc3986/uri/parse.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri/rfc3986/uri/parse.xml b/reference/uri/uri/rfc3986/uri/parse.xml index ee962da2b3de..80e68a4070a8 100644 --- a/reference/uri/uri/rfc3986/uri/parse.xml +++ b/reference/uri/uri/rfc3986/uri/parse.xml @@ -56,6 +56,7 @@ ]]> &example.outputs; From 7c884532136b62f0edd667af4d0c5917fd81e68b Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 22:32:13 +0300 Subject: [PATCH 37/44] resolve.xml The method works not only with URLs --- reference/uri/uri/rfc3986/uri/resolve.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/resolve.xml b/reference/uri/uri/rfc3986/uri/resolve.xml index 68f162ba0ee2..4e028cf14294 100644 --- a/reference/uri/uri/rfc3986/uri/resolve.xml +++ b/reference/uri/uri/rfc3986/uri/resolve.xml @@ -2,7 +2,7 @@ Uri\Rfc3986\Uri::resolve - Resolve a URI with the current object as the base URL + Resolve a URI with the current object as the base URI @@ -12,7 +12,7 @@ stringuri - Resolves a URI - which may potentially be a relative reference - with the current object as the base URL. + Resolves a URI - which may potentially be a relative reference - with the current object as the base URI. @@ -49,11 +49,11 @@ resolve("/foo"); echo $uri->toRawString(); -?> ]]> &example.outputs; From 5e2b7e5ba6da0a615dbd00e33b869f9bb6e82664 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 22:41:39 +0300 Subject: [PATCH 38/44] torawstring.xml Describe non-normalization + show how the method works --- reference/uri/uri/rfc3986/uri/torawstring.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/torawstring.xml b/reference/uri/uri/rfc3986/uri/torawstring.xml index b8ccbe91d6d2..b7bb60bd5f4f 100644 --- a/reference/uri/uri/rfc3986/uri/torawstring.xml +++ b/reference/uri/uri/rfc3986/uri/torawstring.xml @@ -14,6 +14,7 @@ Recomposes the raw (non-normalized) URI to a &string;. + &uri.non-normalization; @@ -24,7 +25,7 @@ &reftitle.returnvalues; - Returns the recomposed raw (non-normalized) URI as a &string;. + Returns the recomposed raw URI as a &string;. @@ -35,16 +36,16 @@ toRawString(); -?> ]]> &example.outputs; From 30b8be23a6a638ec014d1f9bc6fa101447cecb0f Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 22:45:03 +0300 Subject: [PATCH 39/44] tostring.xml Describe normalization + show how to method works --- reference/uri/uri/rfc3986/uri/tostring.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reference/uri/uri/rfc3986/uri/tostring.xml b/reference/uri/uri/rfc3986/uri/tostring.xml index 713d44c50181..b370c128a7ad 100644 --- a/reference/uri/uri/rfc3986/uri/tostring.xml +++ b/reference/uri/uri/rfc3986/uri/tostring.xml @@ -14,6 +14,7 @@ Recomposes the normalized URI to a &string;. + &uri.normalization; @@ -35,10 +36,10 @@ toString(); -?> ]]> &example.outputs; From 54f4dc88014cf7f668a15a6184ec738365941185 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Sun, 17 May 2026 23:06:40 +0300 Subject: [PATCH 40/44] Update withfragment.xml Add ` withFragment("bar"); echo $uri->getFragment(); -?> ]]> &example.outputs; From e8e358c0f8a92275fa535b042a41bbf13954091b Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Mon, 18 May 2026 02:08:40 +0300 Subject: [PATCH 41/44] uri.whatwg.urlvalidationerrortype.xml Add missing desc --- reference/uri/uri.whatwg.urlvalidationerrortype.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/uri/uri.whatwg.urlvalidationerrortype.xml b/reference/uri/uri.whatwg.urlvalidationerrortype.xml index f2e58f029701..eb4bf52a071b 100644 --- a/reference/uri/uri.whatwg.urlvalidationerrortype.xml +++ b/reference/uri/uri.whatwg.urlvalidationerrortype.xml @@ -105,7 +105,7 @@ Ipv4InIpv6InvalidCodePoint - An IPv6 address with IPv4 address syntax. + An IPv6 address with IPv4 address syntax: an IPv4 part contains an invalid code point. From af43763953bd080bcf672060aeaa7eecf34ed933 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 9 Sep 2026 10:44:56 +0200 Subject: [PATCH 42/44] Keep the shared getter examples out of this pull request The example rewrites in the RFC 3986 getter pages overlap with #5471, which unifies the example URL across all of them; reverting them here leaves the two pull requests disjoint. The normalization entities and the wording changes stay. Also corrects four points in what is left: - the normalization entity omitted dot segment removal, which is what getPath() visibly does - the non-normalization entity claimed components are returned in their original form, which toRawString() and a resolved getRawPath() both contradict - getPort() does normalize, it drops leading zeros, so the page keeps its wording - Ipv4InIpv6InvalidCodePoint is also raised for an empty part, a leading zero and too many parts, not only for an invalid code point --- language-snippets.ent | 4 ++-- reference/uri/uri.whatwg.urlvalidationerrortype.xml | 2 +- reference/uri/uri/rfc3986/uri/getfragment.xml | 6 +++--- reference/uri/uri/rfc3986/uri/gethost.xml | 4 ++-- reference/uri/uri/rfc3986/uri/getpath.xml | 4 ++-- reference/uri/uri/rfc3986/uri/getport.xml | 8 ++++---- reference/uri/uri/rfc3986/uri/getquery.xml | 4 ++-- reference/uri/uri/rfc3986/uri/getrawfragment.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawhost.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawpassword.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawpath.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawquery.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawscheme.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawuserinfo.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getrawusername.xml | 6 +++--- reference/uri/uri/rfc3986/uri/getscheme.xml | 4 ++-- reference/uri/uri/rfc3986/uri/getuserinfo.xml | 4 ++-- reference/uri/uri/rfc3986/uri/getusername.xml | 4 ++-- reference/uri/uri/rfc3986/uri/torawstring.xml | 6 +++--- reference/uri/uri/rfc3986/uri/tostring.xml | 4 ++-- 20 files changed, 51 insertions(+), 51 deletions(-) diff --git a/language-snippets.ent b/language-snippets.ent index 3c84b2447c23..09997406d86b 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -4438,13 +4438,13 @@ local: { - Hexadecimal triplets are converted to uppercase, percent-encoded unreserved characters are decoded, and the scheme and host components are normalized to lowercase per RFC 3986. + Hexadecimal triplets are converted to uppercase, percent-encoded unreserved characters are decoded, the scheme and host components are normalized to lowercase, and dot segments are removed from the path, per RFC 3986. '> - Components are returned in their original form; hexadecimal triplets are not converted to uppercase, unreserved characters remain encoded, and case folding is not applied. + No normalization is applied: hexadecimal triplets are not converted to uppercase, percent-encoded unreserved characters remain encoded, and the scheme and host components keep the case they were given in. '> diff --git a/reference/uri/uri.whatwg.urlvalidationerrortype.xml b/reference/uri/uri.whatwg.urlvalidationerrortype.xml index eb4bf52a071b..cf4b6efb923d 100644 --- a/reference/uri/uri.whatwg.urlvalidationerrortype.xml +++ b/reference/uri/uri.whatwg.urlvalidationerrortype.xml @@ -105,7 +105,7 @@ Ipv4InIpv6InvalidCodePoint - An IPv6 address with IPv4 address syntax: an IPv4 part contains an invalid code point. + An IPv6 address with IPv4 address syntax: an IPv4 part is empty, contains a non-ASCII digit or a leading zero, or there are too many IPv4 parts. diff --git a/reference/uri/uri/rfc3986/uri/getfragment.xml b/reference/uri/uri/rfc3986/uri/getfragment.xml index 58b2aad53c9e..d003dd298cd6 100644 --- a/reference/uri/uri/rfc3986/uri/getfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getfragment.xml @@ -36,16 +36,16 @@ getFragment(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/gethost.xml b/reference/uri/uri/rfc3986/uri/gethost.xml index b1e5df80d806..c26fa1e8d622 100644 --- a/reference/uri/uri/rfc3986/uri/gethost.xml +++ b/reference/uri/uri/rfc3986/uri/gethost.xml @@ -36,10 +36,10 @@ getHost(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getpath.xml b/reference/uri/uri/rfc3986/uri/getpath.xml index 0e2a641a06d2..45e2a648afaa 100644 --- a/reference/uri/uri/rfc3986/uri/getpath.xml +++ b/reference/uri/uri/rfc3986/uri/getpath.xml @@ -36,10 +36,10 @@ getPath(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getport.xml b/reference/uri/uri/rfc3986/uri/getport.xml index 1e4f93e5bdb1..f62387858b9c 100644 --- a/reference/uri/uri/rfc3986/uri/getport.xml +++ b/reference/uri/uri/rfc3986/uri/getport.xml @@ -2,7 +2,7 @@ Uri\Rfc3986\Uri::getPort - Retrieve the port component + Retrieve the normalized port component @@ -12,7 +12,7 @@ - Retrieves the port component. + Retrieves the normalized port component. @@ -24,7 +24,7 @@ &reftitle.returnvalues; - Returns the port component as an &integer; if the port component exists, &null; is returned otherwise. + Returns the normalized port component as an &integer; if the port component exists, &null; is returned otherwise. @@ -35,10 +35,10 @@ getPort(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getquery.xml b/reference/uri/uri/rfc3986/uri/getquery.xml index 3887289fb54e..bceb5e2a3f53 100644 --- a/reference/uri/uri/rfc3986/uri/getquery.xml +++ b/reference/uri/uri/rfc3986/uri/getquery.xml @@ -36,10 +36,10 @@ getQuery(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawfragment.xml b/reference/uri/uri/rfc3986/uri/getrawfragment.xml index 2d467387d9ac..0b9bcc227691 100644 --- a/reference/uri/uri/rfc3986/uri/getrawfragment.xml +++ b/reference/uri/uri/rfc3986/uri/getrawfragment.xml @@ -36,16 +36,16 @@ getRawFragment(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawhost.xml b/reference/uri/uri/rfc3986/uri/getrawhost.xml index dc2e431a31f4..2852bbf90e4e 100644 --- a/reference/uri/uri/rfc3986/uri/getrawhost.xml +++ b/reference/uri/uri/rfc3986/uri/getrawhost.xml @@ -36,16 +36,16 @@ getRawHost(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawpassword.xml b/reference/uri/uri/rfc3986/uri/getrawpassword.xml index 1d5f5625d531..6f45012ebda9 100644 --- a/reference/uri/uri/rfc3986/uri/getrawpassword.xml +++ b/reference/uri/uri/rfc3986/uri/getrawpassword.xml @@ -39,16 +39,16 @@ getRawPassword(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawpath.xml b/reference/uri/uri/rfc3986/uri/getrawpath.xml index 2a07926478d1..5fe29ab47648 100644 --- a/reference/uri/uri/rfc3986/uri/getrawpath.xml +++ b/reference/uri/uri/rfc3986/uri/getrawpath.xml @@ -36,16 +36,16 @@ getRawPath(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawquery.xml b/reference/uri/uri/rfc3986/uri/getrawquery.xml index 342666617b81..b796dee89b1c 100644 --- a/reference/uri/uri/rfc3986/uri/getrawquery.xml +++ b/reference/uri/uri/rfc3986/uri/getrawquery.xml @@ -36,16 +36,16 @@ getRawQuery(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawscheme.xml b/reference/uri/uri/rfc3986/uri/getrawscheme.xml index 26b822fc5481..d31517f9de42 100644 --- a/reference/uri/uri/rfc3986/uri/getrawscheme.xml +++ b/reference/uri/uri/rfc3986/uri/getrawscheme.xml @@ -36,16 +36,16 @@ getRawScheme(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml b/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml index 7b0080c88848..1db52105a740 100644 --- a/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml +++ b/reference/uri/uri/rfc3986/uri/getrawuserinfo.xml @@ -36,16 +36,16 @@ getRawUserInfo(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getrawusername.xml b/reference/uri/uri/rfc3986/uri/getrawusername.xml index bf2e8fe17764..b827cc3b30a2 100644 --- a/reference/uri/uri/rfc3986/uri/getrawusername.xml +++ b/reference/uri/uri/rfc3986/uri/getrawusername.xml @@ -37,16 +37,16 @@ getRawUsername(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getscheme.xml b/reference/uri/uri/rfc3986/uri/getscheme.xml index 1bce56e0f24b..fd1d1b0f9e52 100644 --- a/reference/uri/uri/rfc3986/uri/getscheme.xml +++ b/reference/uri/uri/rfc3986/uri/getscheme.xml @@ -36,10 +36,10 @@ getScheme(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getuserinfo.xml b/reference/uri/uri/rfc3986/uri/getuserinfo.xml index 1b4321ff67c5..00a7005d655c 100644 --- a/reference/uri/uri/rfc3986/uri/getuserinfo.xml +++ b/reference/uri/uri/rfc3986/uri/getuserinfo.xml @@ -36,10 +36,10 @@ getUserInfo(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/getusername.xml b/reference/uri/uri/rfc3986/uri/getusername.xml index d3eca5ea32cd..ec0afc3ed419 100644 --- a/reference/uri/uri/rfc3986/uri/getusername.xml +++ b/reference/uri/uri/rfc3986/uri/getusername.xml @@ -37,10 +37,10 @@ getUsername(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/torawstring.xml b/reference/uri/uri/rfc3986/uri/torawstring.xml index b7bb60bd5f4f..fcab3754d7db 100644 --- a/reference/uri/uri/rfc3986/uri/torawstring.xml +++ b/reference/uri/uri/rfc3986/uri/torawstring.xml @@ -36,16 +36,16 @@ toRawString(); +?> ]]> &example.outputs; diff --git a/reference/uri/uri/rfc3986/uri/tostring.xml b/reference/uri/uri/rfc3986/uri/tostring.xml index b370c128a7ad..b7cdc1938530 100644 --- a/reference/uri/uri/rfc3986/uri/tostring.xml +++ b/reference/uri/uri/rfc3986/uri/tostring.xml @@ -36,10 +36,10 @@ toString(); +?> ]]> &example.outputs; From 5d88f3dc596ae3a2ea34112d8308e3424e24d151 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 9 Sep 2026 11:26:15 +0200 Subject: [PATCH 43/44] Correct the normalization wording and the relative URL examples The non-normalization entity said "No normalization is applied", which toRawString() contradicts for an IPv6 host: the host is recomposed from its parsed form, so [2001:DB8::1] comes back fully expanded and in lowercase even when the input was already compressed. Drop the absolute claim, keep the four clauses that do hold, add the dot segment mirror of the other entity, and state the IPv6 exception on the toRawString() page itself. Uri\WhatWg\Url::__construct() and ::parse() gave /foo as an example of "a valid URL string", but both reject it without a baseUrl (MissingSchemeNonRelativeUrl). Say so instead. Uri\WhatWg\Url::resolve() does accept it, and only needed the duplicated "(e.g." removed, which is the third occurrence of the one this pull request already fixed. --- language-snippets.ent | 2 +- reference/uri/uri/rfc3986/uri/torawstring.xml | 5 +++++ reference/uri/uri/whatwg/url/construct.xml | 5 ++++- reference/uri/uri/whatwg/url/parse.xml | 5 ++++- reference/uri/uri/whatwg/url/resolve.xml | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/language-snippets.ent b/language-snippets.ent index 09997406d86b..c678ce86b01c 100644 --- a/language-snippets.ent +++ b/language-snippets.ent @@ -4444,7 +4444,7 @@ local: { - No normalization is applied: hexadecimal triplets are not converted to uppercase, percent-encoded unreserved characters remain encoded, and the scheme and host components keep the case they were given in. + Hexadecimal triplets are not converted to uppercase, percent-encoded unreserved characters remain encoded, the scheme and host components keep the case they were given in, and dot segments are kept in the path. '> diff --git a/reference/uri/uri/rfc3986/uri/torawstring.xml b/reference/uri/uri/rfc3986/uri/torawstring.xml index fcab3754d7db..1bf68c3841b1 100644 --- a/reference/uri/uri/rfc3986/uri/torawstring.xml +++ b/reference/uri/uri/rfc3986/uri/torawstring.xml @@ -15,6 +15,11 @@ Recomposes the raw (non-normalized) URI to a &string;. &uri.non-normalization; + + An IPv6 host is an exception: it is recomposed from its parsed form, and is + therefore returned fully expanded and in lowercase, whatever notation the + input used. + diff --git a/reference/uri/uri/whatwg/url/construct.xml b/reference/uri/uri/whatwg/url/construct.xml index ed65edc96713..baf904aa8e4d 100644 --- a/reference/uri/uri/whatwg/url/construct.xml +++ b/reference/uri/uri/whatwg/url/construct.xml @@ -25,7 +25,10 @@ uri - A valid URL string to parse (e.g. /foo or https://example.com/foo). + A URL string to parse, for instance + https://example.com/foo. A relative-URL string such as + /foo is only accepted when + baseUrl is given. diff --git a/reference/uri/uri/whatwg/url/parse.xml b/reference/uri/uri/whatwg/url/parse.xml index 16cbff137e45..9578ade6ff55 100644 --- a/reference/uri/uri/whatwg/url/parse.xml +++ b/reference/uri/uri/whatwg/url/parse.xml @@ -25,7 +25,10 @@ uri - A valid URL string to parse (e.g. /foo or https://example.com/foo). + A URL string to parse, for instance + https://example.com/foo. A relative-URL string such as + /foo is only accepted when + baseUrl is given. diff --git a/reference/uri/uri/whatwg/url/resolve.xml b/reference/uri/uri/whatwg/url/resolve.xml index 4132ecd7a782..d0a68f4d71fb 100644 --- a/reference/uri/uri/whatwg/url/resolve.xml +++ b/reference/uri/uri/whatwg/url/resolve.xml @@ -24,7 +24,7 @@ uri - A valid URL string (e.g. /foo or (e.g. https://example.com/foo) to apply on + A valid URL string (e.g. /foo or https://example.com/foo) to apply on the current object. From 7ea35bb74ed52f3d7df965fb2ddde8baa94f93f8 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 9 Sep 2026 12:20:11 +0200 Subject: [PATCH 44/44] Use the manual's usual IDN label in the Url examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The three pages need a non-ASCII host, since getAsciiHost(), toAsciiString() and toUnicodeString() only differ from getHost() and toString() on an internationalized domain name; with a plain example.com they printed back their own input. The label itself does not have to be an eighteen letter compound though: the manual already uses "täst" for this on the intl idn pages, which keeps the punycode short enough to read in a screen block. --- reference/uri/uri/whatwg/url/getasciihost.xml | 4 ++-- reference/uri/uri/whatwg/url/toasciistring.xml | 4 ++-- reference/uri/uri/whatwg/url/tounicodestring.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/reference/uri/uri/whatwg/url/getasciihost.xml b/reference/uri/uri/whatwg/url/getasciihost.xml index 0b4cbf6275bd..7fb29b7a28b5 100644 --- a/reference/uri/uri/whatwg/url/getasciihost.xml +++ b/reference/uri/uri/whatwg/url/getasciihost.xml @@ -36,7 +36,7 @@ getAsciiHost(); ]]> @@ -44,7 +44,7 @@ echo $url->getAsciiHost(); &example.outputs; diff --git a/reference/uri/uri/whatwg/url/toasciistring.xml b/reference/uri/uri/whatwg/url/toasciistring.xml index 1556c46156d6..e25d35e44a9b 100644 --- a/reference/uri/uri/whatwg/url/toasciistring.xml +++ b/reference/uri/uri/whatwg/url/toasciistring.xml @@ -37,7 +37,7 @@ toAsciiString(); ]]> @@ -45,7 +45,7 @@ echo $url->toAsciiString(); &example.outputs; diff --git a/reference/uri/uri/whatwg/url/tounicodestring.xml b/reference/uri/uri/whatwg/url/tounicodestring.xml index 8e6c0d86cbe6..1d5b24a6f22d 100644 --- a/reference/uri/uri/whatwg/url/tounicodestring.xml +++ b/reference/uri/uri/whatwg/url/tounicodestring.xml @@ -36,7 +36,7 @@ toUnicodeString(); ]]> @@ -44,7 +44,7 @@ echo $url->toUnicodeString(); &example.outputs;