Feedback on state of some PHP extensions, functions, etc.
| From: | G. P. B. | Date: | Wed, 12 Jun 2019 15:32:58 +0000 |
| Subject: | Feedback on state of some PHP extensions, functions, etc. | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-105881@lists.php.net to get a copy of this message | ||
Hello internal,
I've been going through the documentation again to remove mentions of PHP 4
and found some extensions, functions, etc. on which I'd like to know the
state of them and if it would be wise to deprecate them.
I know I've thrown in some function aliases again, but only those which I
think wouldn't have widespread usage. If those should still be kept in your
opinion please let me know.
The list are more rough notes that I took while reading the doc so if
something seems unclear let me know.
- ob_gzhandler, it says in a note that zlib.output_compression
<https://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression>
is preferred. [1] Moreover, it is poorly documented
- the enable_dl directive, it is said that "This deprecated feature
*will* certainly be *removed* in the future." [x] is this the case
already? addressed in the Deprecation for 7.4 draft RFC [2]
- ini_alter an alias of ini_set [3]
- Deprecate the mode argument in zip_entry_open as it is ignored and
always "*rb*" [4]
- Deprecate the use_shortnames argument of openssl_csr_get_public_key
as it is ignored [5]
- odbc_do — Alias of odbc_exec() ; odbc_field_precision — Alias of
odbc_field_len()
<https://www.php.net/manual/en/function.odbc-field-len.php>
- rewinddir returns null on success and false on failure which is an odd
behavior but I suppose it was kept like that due to BC concerns.
- The FILE_USE_INCLUDE_PATH constant in the Filesystem extension being
an integer makes it unusable with strict types for file_get_contents() [6]
however it is also used for a flag argument where it can be combined with
other constants with a binary OR [7] [8].
Should this be just considered a Doc Bug?
- The Enchant extension is bundled with PHP as of PHP 5.3 [9] however it
seems its license is LGPL-2.1 [10] isn't this clashing with the PHP License?
- PharData::setAlias, PharData::setDefaultStub and PharData::setStub
always throw PharException
<https://www.php.net/manual/en/class.pharexception.php>
[11] [12] [13]
- user_error — Alias of trigger_error() in the Error Handling extension
- show_source — Alias of highlight_file()
<https://www.php.net/manual/en/function.highlight-file.php>
in Misc
Functions
- GLOB_AVAILABLE_FLAGS is used internally to check for malformed glob
flags [14] but it isn't really documented [15] [16]
- Deprecate the NoRewindIterator class in the SPL extension as it seems
pretty useless [17]
- stream_register_wrapper — Alias of stream_wrapper_register()
<https://www.php.net/manual/en/function.stream-wrapper-register.php>
in
Stream Extension
- Deprecate the stream_set_timeout function in favour of stream_select
as " This function doesn't work with advanced operations like
stream_socket_recvfrom()
<https://www.php.net/manual/en/function.stream-socket-recvfrom.php>,
use
stream_select()
<https://www.php.net/manual/en/function.stream-select.php>
with timeout
parameter instead" [18]
- Change print return's type from int to void as it always returns 1 [19]
to mimic echo [20] or maybe mimic printf's behavior i.e. the length of the
string printed [21]
- Deprecate the ftp_site function in favour of ftp_raw as ftp_site()
does not return the response from the server which isn't really practical
as can be seen on these two notes [22][23]
- ftp_quit — Alias of ftp_close()
<https://www.php.net/manual/en/function.ftp-close.php>
- Unbundle the NSAPI Extension (if this is already the case, there is
doc error in the membership state of the extension) as it seems obsolete in
this day and age as it handles Sun/Netscape servers [24]
- socket_getopt — Alias of socket_get_option() and socket_setopt — Alias
of socket_set_option()
<https://www.php.net/manual/en/function.socket-set-option.php>
- Unbundle the XML-RPC extension as it is considered experimental [25]
Best regards
George P. Banyard
[1] https://www.php.net/manual/en/function.ob-gzhandler.php
[x] https://www.php.net/manual/en/info.configuration.php
[2] https://wiki.php.net/rfc/deprecations_php_7_4
[3] https://www.php.net/manual/en/function.ini-alter.php
[4] https://www.php.net/manual/en/function.zip-entry-open.php
[5] https://www.php.net/manual/en/function.openssl-csr-get-public-key.php
[6] https://www.php.net/manual/en/function.file-get-contents.php
[7] https://www.php.net/manual/en/function.file-put-contents.php
[8] https://www.php.net/manual/en/function.file.php
[9] https://www.php.net/manual/en/enchant.installation.php
[10] https://github.com/AbiWord/enchant
[11] https://www.php.net/manual/en/phardata.setalias.php
[12] https://www.php.net/manual/en/phardata.setdefaultstub.php
[13] https://www.php.net/manual/en/phardata.setstub.php
[14] https://github.com/php/php-src/blob/master/ext/standard/dir.c#L192
[15] https://www.php.net/manual/en/filesystem.constants.php
[16] https://www.php.net/manual/en/function.glob.php
[17] https://www.php.net/manual/en/class.norewinditerator.php
[18]
https://www.php.net/manual/en/function.stream-set-timeout.php#refsect1-function.stream-set-timeout-notes
[19] https://www.php.net/manual/en/function.print.php
[20] https://www.php.net/manual/en/function.echo.php
[21] https://www.php.net/manual/en/function.printf.php
[22] https://www.php.net/manual/en/function.ftp-site.php#86838
[23] https://www.php.net/manual/en/function.ftp-site.php#26907
[24] https://www.php.net/manual/en/book.nsapi.php
[25] https://www.php.net/manual/en/intro.xmlrpc.php