Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130722 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id DD4C61A00BC for ; Thu, 30 Apr 2026 19:19:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1777576779; bh=xLz4cu+nw/4wnQpx/Zj7fAiQCAxLnGnFdotMomDOZhI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=QyrgtLt2sL7pS7/auiEbqjqgNGa18JpmnCAdvpwVfZZi48bo5oUpC4ncxdRZA0gF1 lJ5bPAdrMF53MJHvqhYSwGSEr4IwxNczeA6wvqFwYBfvqecIRbEh+HE5YwdIs/0Raw HIHxQbIjQQ/t4evlvHnPAsNHeVBCCNEMOBLGqU2kr4N2ife0b7mqXSRKE/D0gnTwY+ fygpp/JPasyojN8/G7RdLQJwUrYdolpwySC0Ou/IxngZzxDs9ukSBn9z09SHjfR4CS e6aRw4gOSX0usSGHK0iq/MZznnbUfcNnvPFYxrW3iZvJl4RJV6BPIyFW69Rg9CaT3Y TKpqMqpDKoSIw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 951FA1801D5 for ; Thu, 30 Apr 2026 19:19:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FORGED_GMAIL_RCVD, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-qt1-f179.google.com (mail-qt1-f179.google.com [209.85.160.179]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 30 Apr 2026 19:19:28 +0000 (UTC) Received: by mail-qt1-f179.google.com with SMTP id d75a77b69052e-50e594413c2so8405801cf.0 for ; Thu, 30 Apr 2026 12:19:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777576763; cv=none; d=google.com; s=arc-20240605; b=CVYWIiFC7EDmGn9Bc5SWwRJcHDdwEtSZzWm7rw0qfJyhK2/+meRUy7s4ldIeI16/Ga kkNc4iGeDWfSaMm5mgtehQo3vDsN6TjfsXFwxDPsI5V6T5XFObcpxXusicWjG+Bqeh5O L4nkBzIf+SLdqaHa6VnQ9cp6/IL+LHIH3c59c/q4EPdxhk9qZANwb6t5g56NT3BM+/Nw 74QN+tqV4GSqfO4NpI+TFpkVdhIylLblPXEQ8udp4PmEhg08O8ZwQhQww2kaL3OZDEIL POlnUOdlrPiX2PTHVYLrXJ4KRquefZEOuiXdkrc32af4fzTpAXeoN3Bkln/5eSbkLxdk mGLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=zFkGvMNHxRmXd5tJ+FYbprWhhmHQxxDDvzEyMXtsAaU=; fh=XsV7IvYi/PH0niJT6YsYUpZmKkLrU2LAN8DoBxcTsmw=; b=AvBGfIUGuEC8WjjHZtwVnbeBcvAf0BiTERI4eIpOzK7YMu1k8aSa7lBh3aBjDP8obh UpiqSsAD8M4/ScWa8sEnOHhh4Lkona6gGgmnntc7ftlPJNUv0YFd3FnZkkG/ULLf+sxT +LC4Gbb86TqYQK9ZXMSUL81DqI/Qo08zCfUibrpTC30mh0EtlRHVavdwPyPbrzw8A+ro nYi0OVgj92Lyh6us32TAYotzDATIGx1PpReYwnQspmjzFC1I2HJBX1xtcdICogNGOOh5 L1EYQtZ2gBB5pC/7yXlkTuMcKLuxCPLxSOoWK2yXU3QPqUPcc2wBSIygnbn0KJIijpe8 4M5A==; darn=lists.php.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777576763; x=1778181563; darn=lists.php.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zFkGvMNHxRmXd5tJ+FYbprWhhmHQxxDDvzEyMXtsAaU=; b=LwEgtzPH5/Ws9cF68XZNar6hZyxppaikzyPBu0ZQClZNBfOyM0M9AGNMcDbZGZpDSi t9/yVAYp+PSVtGckr2O1OPhkesy3FdsIf3Bi7115NOMiTzw1P05fS/tgOv5VyUv4ryKr k8GowBfBo51eAHrQr+LFGPjB9IWWrzc5B6uHMTG0hkZKj1Z/+79/d4fR3WT+8ZkZ2KuY KHIxlSSjaddPJgL29XMbxPU7KJpr4kqGKqOG3OA1s1gWJsJ/k0vp/5DUj6wS/SMSp5oV 0lGJ8OXkJ0PRrusGmUL36PEV23OuMaxnstt0QmLFuTzlyp/Q3TBKo56SkvgZ3ytzca1/ /23w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777576763; x=1778181563; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=zFkGvMNHxRmXd5tJ+FYbprWhhmHQxxDDvzEyMXtsAaU=; b=AaqIv7SRshsY6ntykXlLn2/NESI7z5ueJw0Wjad6lLJZB3sLJ6fBLPq6a7IULz6Nod fxPz6BykMnB8L4uX8PkbW3Fm8AD8ZHLfSqrEwp8mUm7PMzpGVTQTrCpnGZIWJWgdD/r+ d23qeAMVkwy+TeZMZmkidOmfYORglvhB07Z6sp8W3acJKeYqzKiqn5JQVZiLGAksh4UR bYvu4MBSulWzhB/zK3hQnWAjx/royMCBLKLH2hWN5j+qyrRkmhBCMyJ7tgCA5wdkOb1M ZtumaEjR41W1VdNINkaApVs+D57j1TGS7+yX/5q3fJTAUo/xnSwdo6QYktLJLSd6q2yD y8Og== X-Forwarded-Encrypted: i=1; AFNElJ/qK89BHKsmB9G521fsTcExnhgdGvke3cBWXVaXUG7jtB1AMqTwyjb/mVLtKLRZLjRuybJeZ733t+0=@lists.php.net X-Gm-Message-State: AOJu0Yzvs6czdgS9wKHIlbbxgEuW1NPjJkdBOjj65yjr+hSSXid7bhKX MpcK80otDiizgTgsVzvpOS5pRJ+j8YaxnnsTkyRwx5ugXw7dI+TIIcO4Rx3okVlM5PZeqQdxmMD 7Fglz6kL/MCbdbK48i5cpF1y7TS3c0DE= X-Gm-Gg: AeBDietpL2AhROnkh0oJjkWFsZ1VC0kbFMx+L+qMWEJ0FfMdUaFx//mJej+Ne5bjMlB c1AjtkD9D12A7r3j0s5iIWJ25HWbmbRScT+OzPotm47KpQN7qlxLj4EEdUdbLX5JOvnmo19+FQa P69Pheqc6LPFAiadVjQA0YscYjshwyV0LeEO9YGwGCbKnp2scJo/r1e+/5C/Dy0DtPCv0IJixy0 xckyNSSY3XJnHml6/N9ZILdVPIy7SCgAs1bpP5HxIOfaLy3CEnWfouFQ0FaX5imAbBVueJqiXVn URKt9BTJZD0uekcT X-Received: by 2002:ac8:7f8c:0:b0:50e:5eac:cf7d with SMTP id d75a77b69052e-5102d1d0c3bmr47165081cf.25.1777576762586; Thu, 30 Apr 2026 12:19:22 -0700 (PDT) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: <1fee2f46-27b7-4eb2-908f-b38f8c78d8c9@bastelstu.be> In-Reply-To: Date: Thu, 30 Apr 2026 21:19:11 +0200 X-Gm-Features: AVHnY4J06o2zakRhPLIo3so89M1SOIrcRfYq7Oor3t9a_h_4XI_LELEM1PqDJL4 Message-ID: Subject: Re: [PHP-DEV] [RFC] [Discussion] Followup Improvements for ext/uri To: =?UTF-8?Q?Tim_D=C3=BCsterhus?= Cc: ignace nyamagana butera , PHP Internals List Content-Type: multipart/alternative; boundary="0000000000007eb8d30650b257cf" From: kocsismate90@gmail.com (=?UTF-8?B?TcOhdMOpIEtvY3Npcw==?=) --0000000000007eb8d30650b257cf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Ignace, Tim et al., I've finished updating the RFC once again, after some private discussion with Tim: It turned out that the percent-decoding feature as proposed would have led to confusing behavior in some cases. In order to avoid this, I ultimately removed the percent-decoding support from the proposal. In the same time, I pivoted from the "instance methods on an enum=E2=80=9D based approach to a simple namespaced function based solution, because the enums would only ever have a single method (even if decoding support is added later, possibly not all the (Uri|Url)PercentEncoder enum cases would be applicable for decoding). Let me know if this doesn't work for you, TBH adding namespaced functions was my least favorite solution, but I didn't have any significantly better idea which would have had the potential to gain traction. I have called out one example in the RFC ( https://wiki.php.net/rfc/uri_followup#percent-encoding_support) which would be problematic if we had a Uri\Rfc3986\uri_percent_decode() function, so let me copy-paste it here for reference: $uri =3D new Uri\Rfc3986\Uri("https://example.com/?a=3Db%26c"); // The que= ry is the percent-encoded form of "a=3Db&c=3Dd" echo Uri\Rfc3986\uri_percent_decode( $uri->getQuery(), Uri\Rfc3986\UriPercentEncodingMode::Query ); // a=3Db&c The result is probably not what we expected, because percent-decoding changed the meaning of the query component: - Originally, the query contained a parameter =E2=80=9Ca=E2=80=9D with valu= e =E2=80=9Cb%26c=E2=80=9D (=E2=80=9Cb&c=E2=80=9D) - Now, there is a parameter =E2=80=9Ca=E2=80=9D with value =E2=80=9Cb=E2=80= =9D, as well as a parameter =E2=80=9Cc=E2=80=9D without value And I'm now attempting once again to announce my intention to start the vote: If no significant issue comes up this time, then I'll start the vote next Tuesday evening (according to UTC). Regards, M=C3=A1t=C3=A9 --0000000000007eb8d30650b257cf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Ignace, Tim et al.,

I've finished updating the RFC once again, after some private discussi= on with Tim:

It turned out that the percent-decodi= ng feature as proposed would have led to confusing behavior
in so= me cases. In order to avoid this, I ultimately removed the percent-decoding= support from the
proposal. In the same time, I pivoted from the = "instance methods on an enum=E2=80=9D based approach
to a si= mple namespaced function based solution, because the enums would only ever = have a single
method (even if decoding support is added later, po= ssibly not all the (Uri|Url)PercentEncoder enum cases
would be ap= plicable for decoding). Let me know if this doesn't work for you, TBH a= dding namespaced
functions was my least favorite solution, but I = didn't have any significantly better idea which would have had
the potential to gain traction.

I have called ou= t one example in the RFC (https://wiki.php.net/rfc/uri_fo= llowup#percent-encoding_support) which
would be problematic i= f we had a Uri\Rfc3986\uri_percent_decode() function, so let me copy-paste = it here for reference:

$uri =3D new Uri\Rfc3986\Ur= i("https://example.com/?a= =3Db%26c"); =C2=A0// The query is the percent-encoded form of &quo= t;a=3Db&c=3Dd"

echo Uri\Rfc3986\uri_percent_decode(
=C2= =A0 =C2=A0 $uri->getQuery(),
=C2=A0 =C2=A0 Uri\Rfc3986\UriPercentEnco= dingMode::Query
);=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0// a=3Db&c

The result is probably not what = we expected, because percent-decoding changed the meaning of the query comp= onent:
- Originally, the query contained a parameter =E2=80=9Ca=E2=80=9D= with value =E2=80=9Cb%26c=E2=80=9D (=E2=80=9Cb&c=E2=80=9D)
- Now, t= here is a parameter =E2=80=9Ca=E2=80=9D with value =E2=80=9Cb=E2=80=9D, as = well as a parameter =E2=80=9Cc=E2=80=9D without value

<= div>And I'm now attempting once again to announce=C2=A0my intention=C2= =A0to start the vote:
If no significant issue comes up this time,= then I'll start the vote next Tuesday evening (according to UTC).

Regards,
M=C3=A1t=C3=A9

=
--0000000000007eb8d30650b257cf--