This RFC came about for an attempt to resolve Bug #72811. In the attempt, discussion shifted from trying to patch the current implementation of parse_url() to more generally replacing the current one. The discussion then shifted to the inability to remove parse_url() due to BC issues. Ideas formed on creating an immutable class that will take a URL and parse it, exposing the pieces by getters.

The current implementation of parse_url() makes a bunch of exceptions to RFC 3986. I do not know if these are conscious exceptions, or, if parse_url() was never based off of the RFC . After raising this RFC , I was alerted that the RFC , is complimented by WHATWG spec on URLs. The aim of WHATWG is to combine RFC 3986 and RFC 3987. However, WHATWG is a “Living Standard” which makes it subject to change, however frequent. Although it does some good combining the two RFC 's, the complexities to have a single PHP parser that would require constant maintaining to adhere to the evolving standard is not exactly practical.