Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130217 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 6FEB51A00BC for ; Sun, 1 Mar 2026 22:31:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1772404288; bh=ATXbtM7KDID/TRxdoVd8SMq2o7XCTAsNXqB4/sBYq1Y=; h=From:Date:Subject:To:From; b=JaRH/JyVcN8RagNjVIGINjcTSqbex9iZDzQilBsAGMbmVrWgTT02iRLYPYb0LunIg vnzM0iP+rAm5ZyRe+SNttZaTmKhzIJXFXz/zlfk9ZlcHiEO+iO1WBMzibg+Lpevv8u KCWRss1OnQckogZkQhe5R5pqFP4zYnHG8+0p/33BEDc1Fzyr5FG70g709M0xXTdEAW dIn/v/bP5OXFDIJr4K+WxffWwFNp4FZebAqmag1lRGzndZbzpXyLxAVmbPpe7YAcEb i9d9yRCGazopu76xO2JewrsXRZ1sL2qvNHLIS7sJzzbnEnVz5vl4WDRkceYrAAFURe 31ivdjVALHc3w== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 023691801ED for ; Sun, 1 Mar 2026 22:31:27 +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=0.9 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_50, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, 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-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (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 ; Sun, 1 Mar 2026 22:31:26 +0000 (UTC) Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-506bcb23a78so36336881cf.3 for ; Sun, 01 Mar 2026 14:31:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772404281; cv=none; d=google.com; s=arc-20240605; b=kHCG5IyYlW+3LtsgwK/bXEhsbt09iYtjee1sbLMlKN5NtKFK/1xL9oDdQGkL4MCDTQ fDF5DfoLLxBA1hH1E8cL8DXXeqZN4wPFBGcr2AL+HFyxNFW8vIJQ5LyjyLiLGFo07Y2i vcinnWVMqtEHI1lvBtHFYD7NFLWUnrYch0rDcgJAVNaKXYTOwMpdwoK4TmzpG4q7d1j2 TzIzibfEYa4lj2G4Jm8lGUkKheQ6vT23oDc92p80WSAceh4f4AE3MgPp1gImYb7cjMvY fgwzLH2mIm+h2dkUORKko5UZpii5OUFMb5CSE75GMzOLNSJogstTqqemAyZdMO27NutA MHcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=ATXbtM7KDID/TRxdoVd8SMq2o7XCTAsNXqB4/sBYq1Y=; fh=RFBKMNwdsUBkXmmb8AAjYIg7L3EzMrZygiLbMB7seK8=; b=glPiHACEDy58Z8foaita30ZEhtDzQyug4IyDsYMLIDYn1pBpTItAkoOXKoyGnHUVN7 4UVbPSOXellS2ZTuEQFKL56TlDpB1v4JsL/YFACYqeOOqXdEXnwuGMm1eAQiM6+ZEX3W f5J3mZ/30Dsq0HL13yXqxXH0t3iKdLrHzlpUhuJ8GyxQ1MBe0nfDLBgkk5KT8RfWybVk twVSLlsUSbLPOqRYTtHN/yK+UgpYIp/YDT25ZTcgdecDoCvUXheyHRw9mfxhgxoD1ZxW WKndW8HcOIu26WMsezqkPq+2PW+hgueCnY71BNSXoZ0K9uOqSUGsO0JgVa37vCu2FL53 v12g==; 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=20230601; t=1772404281; x=1773009081; darn=lists.php.net; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ATXbtM7KDID/TRxdoVd8SMq2o7XCTAsNXqB4/sBYq1Y=; b=VQ2TLvU2kOLVawjMVaRM9fQwrx0Y/lY/jKOFNQNUPxdcstTw/olngC5XfOyV9EzxMA 8iC6vU9/9pg/Kuydv4CyrfxuAhiGa+gpJlKcSSsIX6lwrVzyoFa/Au9pImo0X3Ne9EsH lnhzYFj8KkEixNKTOjubsiL42MaO580Us8Cehw1t6RmvdqmvzoHggzHiPJKAbCnDWhj9 4hmCxdwQEwGB4QdBja10VEmym2CdPuxqO7fkhSj5tagC3jKC8ML/9o/Su0GJU3ZjQmvF Vja5ypNlnd0NixW5S9riqdiKiC2ebnFp3+L2fqpU/IHtCucepb0neUuOW7QH9lrrWuZJ 1TPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772404281; x=1773009081; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ATXbtM7KDID/TRxdoVd8SMq2o7XCTAsNXqB4/sBYq1Y=; b=GyBeVCLLQYNyjlO1r7DGvXoZjYWCzCtAwL3CyLRaei1nzohg7uzlcktvn+NRXfUhmD 1zSLWKMHiav3UwNGkNRDiWqU0cT9XiMHXpi2JwZAT1hpm2uB4gUJzqQDEJJVE51FotAZ wNT0aC8y4X/fQ1NOhsXx9un8vmeixGftSXmknM9Zz6tPHLdgoXMBrX5QZe/xp4/nELzi eUfeJ5QRAtvF06YqD3y30YYGw/htXKG0eYWt7UOcbZwNpmZhp0DY+SUm98nn1ZubbSFF +SOD7e4tMquhy+m3VyXArZEevPkLrt22Q8pdd9XE8LjwdMic1HwQZIe/dXuMFt9TEIA0 x3qg== X-Gm-Message-State: AOJu0YzyCMQp3q2xXS3WN7fFD2CJ1rHHE47k2K/iJ9Qc04DZWGhOuIM+ Rf4vPSYddqRSf5jWa/NREWTGsF01S8ioarUaPWxodhSx9GsV0UqkNtyg2Msfov16pBmkVlexFwJ dvtLOJ74CthGcWH7jiYqQv0gZW1TNW+WQ5vlW X-Gm-Gg: ATEYQzxw+w4XmaoIOZxFiu6AsT81CYq7QgQBoXo+23OI5+SpVdhwbiHvWVyCsH6EToh wrxCfoG6OtaH9Zl72LJJzZ5zR8rFyuTffLyg+3d1QFJ9+JKFR44A3SR4BWqA9PuvHbBGC7hMsNY qMmXl0m5pWQx7KFn5nODtfg60RtWKdXRuxRZKX2mKLhqKdRrE8fHHrqTD+QltcDHG6EFJcHv3aM 1VKqWOiYP6bnoQcap9Yc1f2RHaeer0B/9E5q+HQIa8cH2gYe2A4MNx6nCdM+dJ7RUoJjRza3tUL bjF1h1U7QqXulWUC X-Received: by 2002:a05:622a:118b:b0:506:a3d4:cfcf with SMTP id d75a77b69052e-5075270c6f9mr130981221cf.28.1772404280854; Sun, 01 Mar 2026 14:31:20 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 Date: Sun, 1 Mar 2026 23:31:10 +0100 X-Gm-Features: AaiRm520WvYbgWd5I0QUduPpg9REbh8OwEjLEMGopv8D4vz04fegYcludmskkO4 Message-ID: Subject: [PHP-DEV] [RFC] [Discussion] Query Parameter Manipulation Support To: PHP Internals List Content-Type: multipart/alternative; boundary="0000000000008f0e3c064bfe07a5" From: kocsismate90@gmail.com (=?UTF-8?B?TcOhdMOpIEtvY3Npcw==?=) --0000000000008f0e3c064bfe07a5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey Everyone, As I mentioned in a previous email of mine ( https://externals.io/message/129486#130077), I recently separated the query parameter handling sub-proposal from https://wiki.php.net/rfc/uri_followup into its own RFC because it was way too complex. Therefore I'm officially opening its discussion. After the separation, I reworked the proposal quite a lot: the single biggest change is that now, only a single class would be added: Uri\QueryParams instead of both an RFC 3986 and a WHATWG URL compatible implementation. The focus of the RFC is now to move away from the usage of the $_GET superglobal, which goal comes with two additional expectations: - the new implementation should have comparable performance to $_GET - the new implementation should support most capabilities of $_GET (e.g. arrays) The first one is probably straightforward to achieve, the latter one has fundamental problems: PHP's feature set (mostly: array support) is not compatible with the WHATWG URL, so some behavior likely wouldn't comply with this specification. That's why the RFC still has some TBD parts (e.g. Array API), or some contradicting info related to some getters' and setters' signature/behavior. Other than the API itself, the proposal doesn't have many questions, except one thing: whether the new class should be readonly or not? I tend to make it readonly, but I'm still not sure (since this class can be used as a Builder). Regards, M=C3=A1t=C3=A9 --0000000000008f0e3c064bfe07a5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hey Everyone,

As I mentioned in a previ= ous email of mine (h= ttps://externals.io/message/129486#130077),
I recently separa= ted the query parameter handling sub-proposal from=C2=A0https://wiki.php.net/rfc/uri_followup in= to its own RFC because it was way too complex.
Therefore I'm = officially opening its discussion.

After the separ= ation, I reworked the proposal quite a lot: the single biggest change
=
is that now, only a single class would be added: Uri\QueryParams inste= ad of both an RFC 3986
and a WHATWG URL compatible implementation= .

The focus of the RFC is now to move away from th= e usage of the $_GET superglobal,
which goal comes with two addit= ional expectations:
- the new implementation should have comparab= le performance to $_GET
- the new implementation should support m= ost capabilities of $_GET (e.g. arrays)

The first = one is probably straightforward to achieve, the latter one has fundamental<= /div>
problems: PHP's feature set (mostly: array support) is not co= mpatible with the WHATWG URL,
so some behavior likely wouldn'= t comply with this specification. That's why the RFC
still ha= s some TBD parts (e.g. Array API), or some contradicting info related to so= me getters' and setters'=C2=A0signature/behavior.

Other than the=C2=A0API itself, the proposal doesn't have many = questions, except one thing: whether the new class should be readonly or no= t? I tend to make it readonly, but I'm still not sure (since
= this class can be used as a Builder).

Regards,
M=C3=A1t=C3=A9


--0000000000008f0e3c064bfe07a5--