Doc->Req #75442 [Ver->Opn]: Remove FILTER_FLAG_SCHEME|HOST_REQUIRED constants

From: Date: Sat, 28 Oct 2017 15:43:23 +0000
Subject: Doc->Req #75442 [Ver->Opn]: Remove FILTER_FLAG_SCHEME|HOST_REQUIRED constants
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-212350@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75442&edit=1 ID: 75442 Updated by: cmb@php.net Reported by: wrossmann at gmail dot com -Summary: SCHEME and HOST VALIDATE_URL constants are not actually used +Summary: Remove FILTER_FLAG_SCHEME|HOST_REQUIRED constants -Status: Verified +Status: Open -Type: Documentation Problem +Type: Feature/Change Request Package: Filter related PHP Version: Irrelevant Assigned To: cmb Block user comment: N Private report: N New Comment: This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. I'm switching to feature request wrt. removing the unused constants. Previous Comments: ------------------------------------------------------------------------ [2017-10-28 15:41:01] cmb@php.net Automatic comment from SVN on behalf of cmb Revision: http://svn.php.net/viewvc/?view=revision&revision=343324 Log: Fix bug #75442: SCHEME and HOST VALIDATE_URL constants are not actually used ------------------------------------------------------------------------ [2017-10-25 21:24:48] wrossmann at gmail dot com Description: ------------ Commit: https://github.com/php/php-src/commit/ea491dba64d6c15a515e0f1cc58d881c2e2dc2f3#diff-a61ab806f8c2193851acdd3eb5f37232L489 Regarding bug: https://bugs.php.net/bug.php?id=39898 The above patch essentially removed the only usage of the constants FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_SCHEME_REQUIRED, however the constants themselves not only still exist, but the documentation's only hint about this is the changelog note: 5.2.1 FILTER_VALIDATE_URL now defaults to FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED. The phrasing of this, and the continued presence of these constants, is misleading in that the word 'default' implies that it can be changed to something else, which it frankly cannot. Furthermore, there's no '_DEFAULT' flag against which one would expect to negate whatever defaults are supposedly enabled, hence the explicit 0 in the test script. I suggest at least amending the doc page to better convey to users that the VALIDATE_URL filter *requires* both scheme and host since 5.2.1, and that those constants have no effect. At some point I'd wager that these now-useless constants should be removed entirely, but doing so would be a potential BC break so I guess that would have to wait for PHP8. Test script: --------------- $no_scheme = '//google.com/foo/bar'; $no_host = '/foo/bar'; var_dump( $no_scheme, parse_url($no_scheme), filter_var("$no_scheme",FILTER_VALIDATE_URL, 0) ); var_dump( $no_host, parse_url($no_host), filter_var("$no_host",FILTER_VALIDATE_URL, 0) ); Expected result: ---------------- No scheme: string(20) "//google.com/foo/bar" array(2) { ["host"]=> string(10) "google.com" ["path"]=> string(8) "/foo/bar" } bool(true) No host: string(8) "/foo/bar" array(1) { ["path"]=> string(8) "/foo/bar" } bool(true) // note: this would only be the expected result if the functionality matched the documentation. Actual result: -------------- No scheme: string(20) "//google.com/foo/bar" array(2) { ["host"]=> string(10) "google.com" ["path"]=> string(8) "/foo/bar" } bool(false) No host: string(8) "/foo/bar" array(1) { ["path"]=> string(8) "/foo/bar" } bool(false) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75442&edit=1

« previous php.bugs (#212350) next »