функция since 6.2.0

_preload_old_requests_classes_and_interfaces()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

_preload_old_requests_classes_and_interfaces( string $to )

Описание

Эта функция предварительно загружает старый код Requests в память до того, как процесс обновления удалит файлы. Зачем? Код Requests загружается в память через автозагрузчик: когда требуется класс или интерфейс и в этот момент выполняется запрос, Requests может попытаться обратиться к коду. Если файла уже нет, может произойти фатальная ошибка. Если файл был заменён, новый код несовместим со старым, что также приведёт к фатальной ошибке. Предварительная загрузка гарантирует, что код находится в памяти ещё до его обновления.

Оригинал (английский)

This function preloads the old Requests code into memory before the upgrade process deletes the files. Why? Requests code is loaded into memory via an autoloader, meaning when a class or interface is needed If a request is in process, Requests could attempt to access code. If the file is not there, a fatal error could occur. If the file was replaced, the new code is not compatible with the old, resulting in a fatal error. Preloading ensures the code is in memory before the code is updated.

Параметры

$to string обязательный
Путь к старой установке WordPress.

Исходный код

wp-admin/includes/update-core.php:1683

function _preload_old_requests_classes_and_interfaces( $to ) {
	global $_old_requests_files, $wp_filesystem, $wp_version;

	/*
	 * Requests was introduced in WordPress 4.6.
	 *
	 * Skip preloading if the website was previously using
	 * an earlier version of WordPress.
	 */
	if ( version_compare( $wp_version, '4.6', '<' ) ) {
		return;
	}

	if ( ! defined( 'REQUESTS_SILENCE_PSR0_DEPRECATIONS' ) ) {
		define( 'REQUESTS_SILENCE_PSR0_DEPRECATIONS', true );
	}

	foreach ( $_old_requests_files as $name => $file ) {
		// Skip files that aren't interfaces or classes.
		if ( is_int( $name ) ) {
			continue;
		}

		// Skip if it's already loaded.
		if ( class_exists( $name ) || interface_exists( $name ) ) {
			continue;
		}

		// Skip if the file is missing.
		if ( ! $wp_filesystem->is_file( $to . $file ) ) {
			continue;
		}

		require_once $to . $file;
	}
}

История изменений

ВерсияОписание
6.2.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.