Code Modernization: Silence the deprecation warning for `auto_detect_line_endings`.

Since PHP 8.1, the `auto_detect_line_endings` setting is deprecated:

> The `auto_detect_line_endings` ini setting modifies the behavior of `file()` and `fgets()` to support an isolated `\r` (as opposed to `\n` or `\r\n`) as a newline character. These newlines were used by “Classic” Mac OS, a system which has been discontinued in 2001, nearly two decades ago. Interoperability with such systems is no longer relevant.

Reference: [https://wiki.php.net/rfc/deprecations_php_8_1#auto_detect_line_endings_ini_setting PHP RFC: Deprecations for PHP 8.1: auto_detect_line_endings ini setting]

> The `auto_detect_line_endings` ini setting has been deprecated. If necessary, handle `\r` line breaks manually instead.

Reference: [1cf4fb739f/UPGRADING (L456-L457) PHP 8.1 Upgrade Notes].

This commit fixes the warning when running tests for the `PO` class:
{{{
Deprecated: auto_detect_line_endings is deprecated in /var/www/src/wp-includes/pomo/po.php on line 16
}}}

While deprecated, the actual `auto_detect_line_endings` functionality has not been removed from PHP (yet) and will still work until PHP 9.0.

For now, we're silencing the deprecation notice as there may still be translation files around which haven't been updated in a long time and which still use the old MacOS standalone `\r` as a line ending.

This should be revisited when PHP 9.0 is in alpha/beta.

Follow-up to [51633].

Props jrf.
See #53635.
Built from https://develop.svn.wordpress.org/trunk@51636


git-svn-id: http://core.svn.wordpress.org/trunk@51242 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2021-08-18 21:58:57 +00:00
parent 74b515c1ba
commit 27522c6f67
2 changed files with 10 additions and 5 deletions

View File

@ -13,10 +13,15 @@ if ( ! defined( 'PO_MAX_LINE_LEN' ) ) {
define( 'PO_MAX_LINE_LEN', 79 );
}
// This setting has been deprecated in PHP 8.1.
if ( PHP_VERSION_ID < 80100 ) {
ini_set( 'auto_detect_line_endings', 1 );
}
/*
* The `auto_detect_line_endings` setting has been deprecated in PHP 8.1,
* but will continue to work until PHP 9.0.
* For now, we're silencing the deprecation notice as there may still be
* translation files around which haven't been updated in a long time and
* which still use the old MacOS standalone `\r` as a line ending.
* This fix should be revisited when PHP 9.0 is in alpha/beta.
*/
@ini_set( 'auto_detect_line_endings', 1 ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
/**
* Routines for working with PO files

View File

@ -13,7 +13,7 @@
*
* @global string $wp_version
*/
$wp_version = '5.9-alpha-51635';
$wp_version = '5.9-alpha-51636';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.