Hi there, > On Feb 24, 2025, at 03:36, Tim Düsterhus <t...@bastelstu.be> wrote: > ... > > but had a look at the “after-action summary” thread and specifically Côme’s > response, which you apparently agreed with: > >> My take on that is more that functionality in core needs to be «perfect», or >> at least near unanimous.
Côme Chilliet's full quote goes on to say "And of course it’s way easier to find a solution which pleases everyone when it’s for something quite simple" -- the example was of `str_contains()`. > Or perhaps phrased differently, like I did just a few days ago in: > https://externals.io/message/126350#126355 > >> The type of functionality that is nowadays added to PHP’s standard library >> is “building block” functionality: Functions that a userland developer would >> commonly need in their custom library or application. > > *Correctly* processing URIs is a common need for developers and it’s > complicated to do right, thus it qualifies as a “building block”. Agreed. Add to that: > On Feb 23, 2025, at 18:48, Gina P. Banyard <intern...@gpb.moe> wrote: > > Considering that one of the other stated goals of this RFC is to provide this > API to other core extensions, the previous objections do not apply here. (The previous objections being that this ought to be left in userland.) * * * I'm repeatedly on record as saying that PHP, as a web-centric language, ought to have more web-centric objects available in core. A _Request_ would be one of those; a _Response_ another; and as being discussed here, a _Url_. However, if it is true that ... - "it’s way easier to find a solution which pleases everyone when it’s for something quite simple" - "The type of functionality that is nowadays added to PHP’s standard library is “building block” functionality: Functions that a userland developer would commonly need in their custom library or application." - "one of the other stated goals of this RFC is to provide this API to other core extensions" - "Parsing is the single most important operation to use with URIs where a URI string is decomposed into multiple components during the process." (from the RFC) ... then an extensive set of objects and exceptions is not strictly necessary. Something like `function parse_url_whatwg(string $url_string, ?string $base_url = null) : array`, with an array of returned components, would meet all of those needs. Similarly, something like a `function parse_url_rfc3986(string $uri_string, ?string $base_url = null) : array` does the same for RFC 3986 parsing. Those things combined provide solid parsing functionality to userland, and make that parsing functionality available to other core extensions. -- pmj