WordPress.org

Make WordPress Core


Ignore:
Timestamp:
09/20/2019 08:07:28 PM (23 months ago)
Author:
desrosj
Message:

Code Modernization: Remove JSON extension workarounds for PHP < 5.6.

The PHP native JSON extension has been bundled and compiled with PHP by default since version 5.2.0. Because the minimum version of PHP required by WordPress is now 5.6.20 (see #46594 and [45058]), JSON extension related polyfills and backwards compatibility code can now be removed.

This change removes code that supported JSON related functionality on older versions of PHP. This includes (but is not limited to) checks that json_last_error() exists, checking and setting the JSON_UNESCAPED_SLASHES and JSON_PRETTY_PRINT constants if not previously defined, and deprecating the _wp_json_prepare_data() function (which was 100% workaround code).

Follow up of [46205].

See #47699.
Props jrf, Clorith, pento.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api/class-wp-rest-request.php

    r46105 r46206  
    640640        /*
    641641         * Check for a parsing error.
    642          *
    643          * Note that due to WP's JSON compatibility functions, json_last_error
    644          * might not be defined: https://core.trac.wordpress.org/ticket/27799
    645642         */
    646         if ( null === $params && ( ! function_exists( 'json_last_error' ) || JSON_ERROR_NONE !== json_last_error() ) ) {
     643        if ( null === $params && JSON_ERROR_NONE !== json_last_error() ) {
    647644            // Ensure subsequent calls receive error instance.
    648645            $this->parsed_json = false;
    649646
    650647            $error_data = array(
    651                 'status' => WP_Http::BAD_REQUEST,
     648                'status'             => WP_Http::BAD_REQUEST,
     649                'json_error_code'    => json_last_error(),
     650                'json_error_message' => json_last_error_msg(),
    652651            );
    653             if ( function_exists( 'json_last_error' ) ) {
    654                 $error_data['json_error_code']    = json_last_error();
    655                 $error_data['json_error_message'] = json_last_error_msg();
    656             }
    657652
    658653            return new WP_Error( 'rest_invalid_json', __( 'Invalid JSON body passed.' ), $error_data );
Note: See TracChangeset for help on using the changeset viewer.