Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129523 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 F072A1A00BC for ; Wed, 3 Dec 2025 08:34:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1764750845; bh=x4hrcz/6jxHpt99rje+0TDPGOJD411jyxBThiwj/K7E=; h=References:In-Reply-To:From:Date:Subject:To:From; b=H1Shmk80By87/12BNNFOjDmGhGpHnuB4u9z2iKLZ5L+K1I/XARWD0yuaX31luolqA CP8yinqZOMpkpIRrLbC4eqTiR4U/IENZgG0kynf6AXZyXMqlm7X7OnbIJg8Y2UDEWE SdCpZrmgKpaQ0eFDy/mnwS8Zh48Apm1HbK3F6py2+DdL/zedA1d62RN7Hdn6EBD8z9 ty+QF6ZPzzO36Vyr/HGoT9JwroH3UfcKnz8N9IAAWNtEXk9a1sama8RJtfGnPKBYzG a7K0PUYWHq/tT3f499v1Y00TSlXvF+uKLQqQNUvDivrIh47NZPKE7WHao4qtVGyoES xiOaU+D3WJP+Q== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 99E04180077 for ; Wed, 3 Dec 2025 08:34:01 +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.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, T_SPF_TEMPERROR autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) (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 ; Wed, 3 Dec 2025 08:34:01 +0000 (UTC) Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-3e8819eda8bso1956260fac.3 for ; Wed, 03 Dec 2025 00:33:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764750835; x=1765355635; darn=lists.php.net; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=QKylAy5hMT7KgluEv4rYDogJnu11/rju6j4iccYDp5w=; b=m2NQoodkmqEpSnCOvicLnUE5Z/N8QaLvT7s0XMggqAlhDwlHdkWJ13XawgKpYJXBWl 79KpYxqgePuCIAbUalBx6cSU8QgbEugRJCM1K1/lQoiQuGEP4YvKG0++JZjk87mcZWST LL2REdnxqIX4vQX51WR4VOOTKFPrX97Mwb6pNMPQNmzEWNAKnVQZnU9nTZLJKaHoDL3R 7LMcBB8tTysu5FR+J6/WMecDgJ8g4XwHQaPnb2PNtJxSGFTASvNj7OxtsikS1Em7FkgK ZcmItE8eFATtA0x8CpX/1UaJp8dmI5m+infqX/zHPXiYrgaqNNcTfWO15dlWM95nKTqd WCsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764750835; x=1765355635; h=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=QKylAy5hMT7KgluEv4rYDogJnu11/rju6j4iccYDp5w=; b=q4whMEh9ESB6SOSRrh2bboDA5AE7f6gJdf+3t/eUb6Y+oJ3dZNMZdpHd3LEiLYst9A /gf3UIiNNjkHC1jvCcMDEabqxoTeIE8XFEQeNF1LZCul7FmB0Gt30qVcTi2NQjZhVfiP ynZ4DNs2HgnO9UCerh+JHZGpedbwYbFie1R1ddd9IOscPhn8YzrqC9sXdXVISVl58+2d Gg0FepQ+mpsBu971EZVqVPB0ofjhGVgfKVRB3sH4NecPNyQxrT+NYl/CBk74KfpiiWsg fPiTO1csTeh2rY2deXkP4Ocb9AWCyNyyl/1GXpQs2uWZ9l0bir65s6byNL90uAbPYAQU 8nnA== X-Forwarded-Encrypted: i=1; AJvYcCXwkzO+vRS8CxVUjCW4relZg+3EKSOY7pv54FbdYJr1CHnyA5RjGXpOIN16qEFEhs6wtnQ/PuotUh0=@lists.php.net X-Gm-Message-State: AOJu0Yx241BuEXijkCdKYX407h/sC+JKVnRRq06Yeoh8WBAEPuQvCoAB Wi1Hgk8YVXbuh1GyLHQm6ADu0M7fu/aEn6FfAt3QQHf6Zkbi5tqSrPg+cSywpR9sZfV30CrvnKK A+5y/j4OH0FPmlkpqGov5RiRaoDb124o= X-Gm-Gg: ASbGncujjzAqoMNejLZn+MzAaI1r40gfWesdz64D0sOtxnl5S2Pgi53p/ww09qT/Sh5 LGvQO/dZtcO/LlnEsuupzOdo3gJyYtw4SJeB25s/onq4LuxjkVO84HX5nZ3gkv6q5QxgJa2hdUE l5QDuscVafZu/sQ2bc5RbKM4/G/kLWJPV/nQ81Sx0B9knOzcELAuQGkzdmOIjDBBppQZ8ZRKgi/ UL5Mf7llSvF0vNIhCg+9fsZ5d9PIonvN8o+U6za+aDIM9A0CLqWkW2U+QXbu5MOOyE9Lxua6aDZ nB27XWuzIC6JHJxkabVMRqtvif42EO/bKWwAwui6 X-Google-Smtp-Source: AGHT+IHHb7U8C/O/fvt25RREgJ+/FzWaxlChmNtde0rMfG2npc7qR2bsBnSSM33t0/ajYYU5VXkQ5MSh5/6YlXMjcMQ= X-Received: by 2002:a05:6808:238c:b0:450:dd1b:ff41 with SMTP id 5614622812f47-4536e3a4167mr691926b6e.6.1764750835368; Wed, 03 Dec 2025 00:33:55 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: <9873b03e-1260-44b3-8285-af9511d8766e@app.fastmail.com> <0081d8ac-6520-4a32-8ea5-5e10086e34e3@app.fastmail.com> In-Reply-To: <0081d8ac-6520-4a32-8ea5-5e10086e34e3@app.fastmail.com> Date: Wed, 3 Dec 2025 09:33:44 +0100 X-Gm-Features: AWmQ_blsIxDnL4l1v7yud34NtTO3MoA4azQyKx-7MlueLKEnrJy95A0U9NLvCCw Message-ID: Subject: Re: [PHP-DEV] [RFC] [Discussion] Followup Improvements for ext/uri To: Larry Garfield , PHP Internals List Content-Type: multipart/alternative; boundary="000000000000a8c73306450812c5" From: nyamsprod@gmail.com (ignace nyamagana butera) --000000000000a8c73306450812c5 Content-Type: text/plain; charset="UTF-8" > - Url::isSpecial() Could we come up with a better name here? I would go with Url::isStandardBrowserUrl() or something similar. The *special* in the WHATWG spec represents a list of specific URI schemes. It currently contains http(s), ws(s) and file. But since it is a living standard, if I remember correctly, at some point, the gopher scheme for instance was also listed there and in contrast the data or the blob URI scheme have never been listed there. So finding the right name which does not get outdated depending on what it represents is ... special > - So the interface doesn't cover build(). Problem solved. And it does not cover (set)userInfo, (set)username, (set)password ... modifiers too and depending on if validation is taken into account you may also remove (set)host from your interface > - Then the RFC needs to explain why we need to have both for the query params, and how they differ. The RFC3986 URI exposes the `raw` non normalized URI component as well as the normalized one. The only distinction from the Query component perspective in RFC3986 is that encoded characters need to be uppercased. So if you want to work with the raw input untouched you will need the getRawQuery and thus the getRawQueryParams. As I said this is already covered in the previous RFC. Where I do agree with you is, if after creating the UriQueryParams the result is identical, then we may not need the getRawQueryParams method at all. Best regards, Ignace --000000000000a8c73306450812c5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
>=C2=A0 - Url::isSpec= ial() Could we come up with a better name here?
I would go with Url::is= StandardBrowserUrl() or something similar. The special in the WHATWG= spec represents a list of specific URI schemes. It currently contains http= (s), ws(s) and=C2=A0file. But since it is a living standard, if I remember = correctly, at some point, the gopher scheme for instance was also listed th= ere and in contrast the data or the blob URI scheme have never been listed = there. So finding the right name which does not get outdated depending on w= hat it represents is ... special

> - So the int= erface doesn't cover build().=C2=A0 Problem solved.
And it do= es not cover=C2=A0(set)userInfo, (set)username, (set)password ... modifiers= too and depending on if validation is taken into=C2=A0account you may also= remove (set)host from your interface

> - Then = the RFC needs to explain why we need to have both for the query params, and= how they differ.
The RFC3986 URI exposes the `raw` non normalize= d URI component as well as the normalized one. The only distinction from th= e Query component perspective in RFC3986 is that encoded characters need to= be uppercased. So if you want to work with the raw input untouched you wil= l need the getRawQuery and thus the getRawQueryParams. As I said this is al= ready covered=C2=A0in the previous RFC. Where I do agree with you
is, if after creating the UriQueryParams the result is identical, then we = may not need the getRawQueryParams method at all.

= Best regards,
Ignace

--000000000000a8c73306450812c5--