mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 17:48:01 +01:00
645e753a51
This is a major release and contains breaking changes. Most important changes to be aware of for this release: * All code is now namespaced. Though there is a full backward compatibility layer available and the old class names are still supported, using them will generate a deprecation notice (which can be silenced by plugins if they'd need to support multiple WP versions). See the [https://requests.ryanmccue.info/docs/upgrading.html upgrade guide] for more details. * A lot of classes have been marked `final`. This should generally not affect userland code as care has been taken to not apply the `final` keyword to classes which are known to be extended in userland code. * Extensive input validation has been added to Requests. When Requests is used as documented though, this will be unnoticable. * A new `WpOrg\Requests\Requests::has_capabilities()` method has been introduced which can be used to address #37708. * A new `WpOrg\Requests\Response::decode_body()` method has been introduced which may be usable to simplify some of the WP native wrapper code. * Remaining PHP 8.0 compatibility fixed (support for named parameters). * PHP 8.1 compatibility. Release notes: https://github.com/WordPress/Requests/releases/tag/v2.0.0 For a full list of changes in this update, see the Requests GitHub: https://github.com/WordPress/Requests/compare/v1.8.1...v2.0.0 This commit also resolves 2 blocking issues which previously caused the revert of [52244]: * New Requests files are loaded into `wp-includes/Requests/src/`, matching the location of the library. In doing so, filesystems that are case-insensitive are not impacted (see #54582). * Preload: During a Core update, the old Requests files are preloaded into memory before the update deletes the files. Preloading avoids fatal errors noted in #54562. Follow-up to [50842], [51078], [52244], [52315], [52327], [52328]. Props jrf, schlessera, datagutten, wojsmol, dustinrue, soulseekah, szepeviktor. costdev, sergeybiryukov, peterwilsoncc, ironprogrammer, antonvlasenko, hellofromTonya, swissspidy, dd32, azaozz, TobiasBg, audrasjb. Fixes #54504. See #54582, #54562. Built from https://develop.svn.wordpress.org/trunk@54997 git-svn-id: http://core.svn.wordpress.org/trunk@54530 1a063a9b-81f0-0310-95a4-ce76da25c4cd
79 lines
2.2 KiB
PHP
79 lines
2.2 KiB
PHP
<?php
|
|
/**
|
|
* Requests for PHP
|
|
*
|
|
* Inspired by Requests for Python.
|
|
*
|
|
* Based on concepts from SimplePie_File, RequestCore and WP_Http.
|
|
*
|
|
* @package Requests
|
|
*
|
|
* @deprecated 6.2.0
|
|
*/
|
|
|
|
/*
|
|
* Integrators who cannot yet upgrade to the PSR-4 class names can silence deprecations
|
|
* by defining a `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant and setting it to `true`.
|
|
* The constant needs to be defined before this class is required.
|
|
*/
|
|
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
|
|
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
|
|
trigger_error(
|
|
'The PSR-0 `Requests_...` class names in the Request library are deprecated.'
|
|
. ' Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience.',
|
|
E_USER_DEPRECATED
|
|
);
|
|
|
|
// Prevent the deprecation notice from being thrown twice.
|
|
if (!defined('REQUESTS_SILENCE_PSR0_DEPRECATIONS')) {
|
|
define('REQUESTS_SILENCE_PSR0_DEPRECATIONS', true);
|
|
}
|
|
}
|
|
|
|
require_once __DIR__ . '/Requests/src/Requests.php';
|
|
|
|
/**
|
|
* Requests for PHP
|
|
*
|
|
* Inspired by Requests for Python.
|
|
*
|
|
* Based on concepts from SimplePie_File, RequestCore and WP_Http.
|
|
*
|
|
* @package Requests
|
|
*
|
|
* @deprecated 6.2.0 Use `WpOrg\Requests\Requests` instead for the actual functionality and
|
|
* use `WpOrg\Requests\Autoload` for the autoloading.
|
|
*/
|
|
class Requests extends WpOrg\Requests\Requests {
|
|
|
|
/**
|
|
* Deprecated autoloader for Requests.
|
|
*
|
|
* @deprecated 6.2.0 Use the `WpOrg\Requests\Autoload::load()` method instead.
|
|
*
|
|
* @codeCoverageIgnore
|
|
*
|
|
* @param string $class Class name to load
|
|
*/
|
|
public static function autoloader($class) {
|
|
if (class_exists('WpOrg\Requests\Autoload') === false) {
|
|
require_once __DIR__ . '/Requests/src/Autoload.php';
|
|
}
|
|
|
|
return WpOrg\Requests\Autoload::load($class);
|
|
}
|
|
|
|
/**
|
|
* Register the built-in autoloader
|
|
*
|
|
* @deprecated 6.2.0 Include the `WpOrg\Requests\Autoload` class and
|
|
* call `WpOrg\Requests\Autoload::register()` instead.
|
|
*
|
|
* @codeCoverageIgnore
|
|
*/
|
|
public static function register_autoloader() {
|
|
require_once __DIR__ . '/Requests/src/Autoload.php';
|
|
WpOrg\Requests\Autoload::register();
|
|
}
|
|
}
|