Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129515 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 215C81A00BC for ; Tue, 2 Dec 2025 20:38:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1764707916; bh=dhDg5AUJyLrLj3ZKZlYc6g/teSN3N/bXDNVgVjwknNk=; h=Date:From:To:In-Reply-To:References:Subject:From; b=hQUjCSBvoUXlPJGbyv1yWiLnjIc3636fH2p40PvpVIKRsQ1bkJixMxA9d0urYcB6b elzjd5hnw2J/RwmQBqtNDbS3C812VW+HMp77mPKvC3hGwA7e/DeMIsgsB0J33BGDFR a8YtGMniJ6rmGypJgXMKjxIfclUAAsUUpdgD7dLn0T/70r4Rz9tfvWUsDpFaJb6Kil WlZQXGYy/Xfcg8fugaMvEKF9l6KHpWd4kgxEfeEQ4sv4ufc12uEKr9/KMo/nzcAOSM 5KF8iTE+RpQA9DCaGSkv7MnwjluXcUhjEdB8rNQ5rYRhThoWSnbwEy+VOwbkoc3ZCx /5Njo1zCGkoLw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C8EB61801DF for ; Tue, 2 Dec 2025 20:38:35 +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=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_NONE autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from fhigh-a6-smtp.messagingengine.com (fhigh-a6-smtp.messagingengine.com [103.168.172.157]) (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 ; Tue, 2 Dec 2025 20:38:35 +0000 (UTC) Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 447D31400159 for ; Tue, 2 Dec 2025 15:38:30 -0500 (EST) Received: from phl-imap-01 ([10.202.2.91]) by phl-compute-04.internal (MEProxy); Tue, 02 Dec 2025 15:38:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= garfieldtech.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to; s=fm1; t=1764707910; x=1764794310; bh=qzbPi33QFwAgjBX9i53H/ Shp5bNznUmYzmlzo8sXKck=; b=DkFSvrGURoZQseTpQsnKiYAAZ2Vj+odSl8x8v n+UzJmAPfrXCYFF2bFzyNnhM/xUMV9wrJFkJo2ND8EZ3QeDCj0Wx5p7GeJx5JhcC ROAt+roabkB78TLC5zQvKiejvvsXiaQM6JtWqMdMPvHpyljzh0h+2JKm513on4jg Tswo85v1fTHpF19/nba1KyCtBrnxxDGaln9af4GHs0cw63QRRVTh1G+KDii9FcJJ 6zLPVVDFpd4AiB1wuDhJLj25hvpS1urBHZsluABeAdTBPfanvpVOr7L0Om3bUszY AIld2sTUrH8jBtt6vhVLrugw8R8Xh019ug/1v+S1HwC7xw/nA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; t=1764707910; x=1764794310; bh=q zbPi33QFwAgjBX9i53H/Shp5bNznUmYzmlzo8sXKck=; b=UCP4m84YOaqqzWNRo /mp3ks/t1xNAXkKPc2WIlxCDiExn+lzd6+Z/7DADhem4QXahK5pwfA/TXnoW0sBB OISYuanulnVjQAWpXiN3K7lWw3d0Hhuuzy5h1fUOo/F3CxQMByNhI0vyrQPc33cj dQrX22Wsxr5MNENdwfVA/hctiubKBqmeFs55BJ6WDP9ShMRA3CWIhVeG+aKqtdeA w/MMs/Pazw5yc+LUF+LAFtnIJeQi63IqsPnh+3uEMFBF51FFi/IfJrzm00Z2sVea VLlUryKEFryZHMsJfjFQpIBuO2QydUd7LBs6jD3/pvtcIrfsSRjgCb8dSjt93I/R iy0hQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddutdelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh epofggfffhvffkjghfufgtgfesthejredtredttdenucfhrhhomhepfdfnrghrrhihucfi rghrfhhivghlugdfuceolhgrrhhrhiesghgrrhhfihgvlhguthgvtghhrdgtohhmqeenuc ggtffrrghtthgvrhhnpedugedvlefgueegheefjeetffduveeltefhfeegjeffffelgedt tdevkeegkedugfenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehlrghrrhihsehgrghrfhhivghlughtvggthhdrtghomhdpnhgspghrtghpthht ohepuddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepihhnthgvrhhnrghlsheslh hishhtshdrphhhphdrnhgvth X-ME-Proxy: Feedback-ID: i8414410d:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id DBE3A18C004E; Tue, 2 Dec 2025 15:38:29 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 X-ThreadId: AfsvarjU34r7 Date: Tue, 02 Dec 2025 14:38:09 -0600 To: "php internals" Message-ID: <0081d8ac-6520-4a32-8ea5-5e10086e34e3@app.fastmail.com> In-Reply-To: References: <9873b03e-1260-44b3-8285-af9511d8766e@app.fastmail.com> Subject: Re: [PHP-DEV] [RFC] [Discussion] Followup Improvements for ext/uri Content-Type: text/plain Content-Transfer-Encoding: 7bit From: larry@garfieldtech.com ("Larry Garfield") On Mon, Dec 1, 2025, at 4:53 PM, ignace nyamagana butera wrote: > Hi Larry, > >> - Url::isSpecial() Could we come up with a better name here? "Special" could mean anything unless you know the RFC; it feels like "real escape string" all over again.This comes from the WHATWG specification the isSpecial is how it is named there I realize that, but the vast majority of PHP devs won't have read the official spec so don't know what "special" means. Special in what way? The scheme, the path, the encoding? It's completely non-obvious unless you're versed in the specification, which, again, most people won't be. >> It really feels like there's an interface to extract here from the Url/UriBuilder classes. There's literally only one type-specific method (build()). > Yes but the return type is not always the same object (Uri and Url are > different so I would be incline not adding a useless interface they are > similar yet different) So the interface doesn't cover build(). Problem solved. >> - Why both Uri getRawQueryParams() and getQueryParams()? It looks like they would return the same value, no? (If not, that should be explained.) > Because Uri\Rfc3986\Uri already exposes Uri::getQuery and Uri::getRawQuery. Then the RFC needs to explain why we need to have both for the query params, and how they differ. Right now, there's no explanation of how they differ, and the example suggests that they'd return identical values. --Larry Garfield