WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_get_environment_type() Yoast 5.5.0

Получает текущий тип окружения: local, development, staging, production (по умолчанию).

Ищем WP-разработчика! Фулл-тайм, удаленка, хорошая зарплата, соц. пакет. Подробности.
Компания Boosta.

Это функция стандартизирует применение разной логики кода для разной среды разработки. Так например можно выполнять один код на локалке, другой при тестировании и третий в продакшене.

Установка типа окружения

Тип окружения может быть задан двумя способами: с помощью глобальной системной переменной WP_ENVIRONMENT_TYPE или константы с таким же именем.

putenv( 'WP_ENVIRONMENT_TYPE=development' );

// или
define( 'WP_ENVIRONMENT_TYPE', 'development' );

Значение константы, переписывает значение системной переменной. Если указано значение не из списка выше, то функция вернет тип production.

При установке типа окружения development включается дебаг режим, т.е. константа WP_DEBUG будет установлена в true.

Читайте также описание функции putenv().

1 раз — 0.000001 сек (скорость света) | 50000 раз — 0.00 сек (скорость света)

Хуков нет.

Возвращает

Строку. Текущий тип окружения:

  • local — локалка. C версии 5.5.1
  • development — разработка.
  • staging — ветка, стадия, тестирование.
  • production — рабочий сайт (по умолчанию).

Использование

wp_get_environment_type();

Примеры

#1 Пример из Ядра - дефолтная установка константы WP_DEBUG

if ( ! defined( 'WP_DEBUG' ) ) {
	if ( 'development' === wp_get_environment_type() ) {
		define( 'WP_DEBUG', true );
	} else {
		define( 'WP_DEBUG', false );
	}
}

#2 Еще демонстрационный пример

switch ( wp_get_environment_type() ) {
	case 'local':
	case 'development':
		do_nothing();
		break;

	case 'staging':
		do_staging_thing();
		break;

	case 'production':
	default:
		do_production_thing();
		break;
}

Код wp_get_environment_type() Yoast 17.7.1

function wp_get_environment_type() {
	static $current_env = '';

	if ( $current_env ) {
		return $current_env;
	}

	$wp_environments = [
		'local',
		'development',
		'staging',
		'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 ( $has_env !== false ) {
			$wp_environments = explode( ',', $has_env );
		}
	}

	// Fetch the environment types from a constant, this overrides the global system variable.
	if ( defined( 'WP_ENVIRONMENT_TYPES' ) ) {
		$wp_environments = WP_ENVIRONMENT_TYPES;
	}

	// Check if the environment variable has been set, if `getenv` is available on the system.
	if ( function_exists( 'getenv' ) ) {
		$has_env = getenv( 'WP_ENVIRONMENT_TYPE' );
		if ( $has_env !== false ) {
			$current_env = $has_env;
		}
	}

	// Fetch the environment from a constant, this overrides the global system variable.
	if ( defined( 'WP_ENVIRONMENT_TYPE' ) ) {
		$current_env = WP_ENVIRONMENT_TYPE;
	}

	// Make sure the environment is an allowed one, and not accidentally set to an invalid value.
	if ( ! in_array( $current_env, $wp_environments, true ) ) {
		$current_env = 'production';
	}

	return $current_env;
}

debug (дебаг)

Опции сайта (настройки)

Комментариев нет
    Войти