[wp-trac] [WordPress Trac] #54546: Fatal error receive while updating WP 5.8.2 to WP 5.9.

WordPress Trac noreply at wordpress.org
Wed Dec 1 17:30:28 UTC 2021

#54546: Fatal error receive while updating WP 5.8.2 to WP 5.9.
 Reporter:  apeksha10          |       Owner:  (none)
     Type:  defect (bug)       |      Status:  new
 Priority:  normal             |   Milestone:  5.9
Component:  Upgrade/Install    |     Version:  trunk
 Severity:  normal             |  Resolution:
 Keywords:  reporter-feedback  |     Focuses:

Comment (by jrf):

 Replying to [comment:4 hellofromTonya]:
 > Requests library:
 > - Requests pre-2.0.0:
 >    * the "cURL" class was called `Requests_Transport_cURL` and was in a
 file named `wp-includes/Requests/Transport/cURL.php`.
 >    * [https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-
 includes/Requests/Transport/cURL.php#L443 Line 443] in `cURL.php` file
 throws a new `Requests_Exception()` error
 > - Requests 2.0.0:
 >    * the "cURL" class was renamed to `WpOrg\Requests\Transport\Curl` and
 its file renamed to `wp-includes/Requests/Transport/Curl.php`.
 >    * `Requests_Exception` class was removed in this version
 >    * [https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-
 includes/Requests/Transport/Curl.php#L492 The cURL error] was changed to
 throw a new `Exception`

 Just making sure the base information is correct:

 `Requests_Exception` was not removed. It became namespaced, just like
 every other class. The file was not renamed/moved as it was already called

 So the `Exception` you see being thrown in the `Curl` class is still the
 same exception, just namespaced now (and imported via a `use
 WpOrg\Requests\Exception` import statement).


 As for the issues you are seeing, yes, I agree, these are likely to do
 with file name casing and that not being taken into account properly
 during the upgrade.

 In the Requests repo itself, we moved all files. The "old" PSR-0 classes
 lived in a `library` directory, the new PSR-4 based classes live in a
 `src` directory.
 That prevents these kind of issues from happening as the files are seen as
 "new" files.

 Unfortunately, WP Core had nearly***** all the files in the `wp-
 includes/requests` directory, not in `wp-includes/requests/libary`, so
 that didn't really allow for making the same directory move.

 Would moving the files to `wp-includes/requests/src` be a potential
 solution ? (to make sure they are seen as new files, not updated files)

 ***** One exception to this: the original entry point class `Requests` was
 in WP Core in the `wp-includes/class-requests.php` file (in Requests that
 class was in `library/Requests.php`).
 In Requests 2.0 a stripped down version of the "old"
 `library/Requests.php` file still remains in place as part of the BC-
 The actual functional code, however, lives in the "new" `src/Requests.php`
 For WP Core, the `wp-includes/class-requests.php` file now contains the
 stripped down version of the `library/Requests.php` file and along the
 same lines as in Requests itself, the ''real'' functional code now lives
 in the `wp-includes/requests/Requests.php` file.

Ticket URL: <https://core.trac.wordpress.org/ticket/54546#comment:10>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list