WordPress.org

Make WordPress Core


Ignore:
Timestamp:
09/20/2019 08:07:28 PM (2 years 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/tests/phpunit/tests/rest-api/rest-schema-setup.php

    r46190 r46206  
    489489            $this->assertTrue( ! empty( $data ), $route['name'] . ' route should return data.' );
    490490
    491             if ( version_compare( PHP_VERSION, '5.4', '>=' ) ) {
    492                 $fixture           = $this->normalize_fixture( $data, $route['name'] );
    493                 $mocked_responses .= "\nmockedApiResponse." . $route['name'] . ' = '
    494                     . json_encode( $fixture, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES )
    495                     . ";\n";
    496             }
     491            $fixture           = $this->normalize_fixture( $data, $route['name'] );
     492            $mocked_responses .= "\nmockedApiResponse." . $route['name'] . ' = '
     493                . json_encode( $fixture, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES )
     494                . ";\n";
    497495        }
    498496
    499497        // Only generate API client fixtures in single site and when required JSON_* constants are supported.
    500         if ( ! is_multisite() && version_compare( PHP_VERSION, '5.4', '>=' ) ) {
     498        if ( ! is_multisite() ) {
    501499            // Save the route object for QUnit tests.
    502500            $file = dirname( DIR_TESTROOT ) . '/qunit/fixtures/wp-api-generated.js';
Note: See TracChangeset for help on using the changeset viewer.