Bootstrap/Load: Remove the ability to alter the list of environment types in `wp_get_environment_type()`.

The intention of `wp_get_environment_type()` is to provide a consistent means of identifying the environment type, not of identifying a specific environment.

Actual environments should fit within one of the existing types: `local`, `development`, `staging`, or `production`. That should cover the types that plugins and themes might be concerned about when toggling functionality. 

Props johnbillion, joostdevalk, TimothyBlynJacobs, jeremyfelt, batmoo, claytoncollie, Clorith, markjaquith, garrett-eclipse, GaryJ, elrae.
Merges [48894] and [48895] to the 5.5 branch.
Fixes #50992.

git-svn-id: https://develop.svn.wordpress.org/branches/5.5@48896 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2020-08-27 21:44:10 +00:00
parent b16bfc45f6
commit d60dc322f3
1 changed files with 14 additions and 10 deletions

View File

@ -138,7 +138,8 @@ function wp_check_php_mysql_versions() {
* If not set, the type defaults to 'production'.
*
* @since 5.5.0
* @since 5.5.1 The 'local' type was added.
* @since 5.5.1 Added the 'local' type.
* @since 5.5.1 Removed the ability to alter the list of types.
*
* @return string The current environment type.
*/
@ -156,17 +157,20 @@ function wp_get_environment_type() {
'production',
);
// Check if the environment variable has been set, if `getenv` is available on the system.
if ( function_exists( 'getenv' ) ) {
$has_env = getenv( 'WP_ENVIRONMENT_TYPES' );
if ( false !== $has_env ) {
$wp_environments = explode( ',', $has_env );
// Add a note about the deprecated WP_ENVIRONMENT_TYPES constant.
if ( defined( 'WP_ENVIRONMENT_TYPES' ) && function_exists( '_deprecated_argument' ) ) {
if ( function_exists( '__' ) ) {
/* translators: %s: WP_ENVIRONMENT_TYPES */
$message = sprintf( __( 'The %s constant is no longer supported.' ), 'WP_ENVIRONMENT_TYPES' );
} else {
$message = sprintf( 'The %s constant is no longer supported.', 'WP_ENVIRONMENT_TYPES' );
}
}
// Fetch the environment types from a constant, this overrides the global system variable.
if ( defined( 'WP_ENVIRONMENT_TYPES' ) ) {
$wp_environments = WP_ENVIRONMENT_TYPES;
_deprecated_argument(
'define()',
'5.5.1',
$message
);
}
// Check if the environment variable has been set, if `getenv` is available on the system.