wordpress-develop/tests/phpunit/includes
Sergey Biryukov 17fb93149b Code Modernization: Fix "JsonSerializable_Object::jsonSerialize() should be compatible with JsonSerializable::jsonSerialize(): mixed" error on PHP 8.1.
This relates to the [https://wiki.php.net/rfc/internal_method_return_types Return types for internal methods RFC] in PHP 8.1 and in particular, the change made in [https://github.com/php/php-src/pull/7051 PHP PR #7051], which adds a `mixed` return type to the `JsonSerializable::jsonSerialize()` interface method.

WordPress only contains one (test) class which implements the `JsonSerializable` interface and this commit fixes the issue for that class.

As of PHP 8.1, the `jsonSerialize()` method in classes which implement the `JsonSerializable` interface are expected to have a return type declared. The return type should be `mixed` or a more specific type. This complies with the Liskov principle of covariance, which allows the return type of a child overloaded method to be more specific than that of the parent.

The problem with this is that:
1. The `mixed` return type was only introduced in PHP 8.0.
2. Return types in general were only introduced in PHP 7.0.

WordPress still has a minimum PHP version of 5.6, so adding the return type is not feasible for the time being.

The solution chosen for now is to add an attribute to silence the deprecation warning. While attributes are a PHP 8.0+ feature, due to the choice of the `#[]` syntax, in PHP < 8.0, attributes will just be ignored and treated as comments, so there is no drawback to using the attribute.

Props jrf.
See #53635.

git-svn-id: https://develop.svn.wordpress.org/trunk@51517 602fd350-edb4-49c9-b593-d223f7449a82
2021-07-30 14:46:30 +00:00
..
factory Docs: Corrections and improvements to types used in docblocks for symbols, properties, and filters. 2021-07-01 21:01:17 +00:00
phpunit6 Tests: Minimize the chances of signature conflicts for assertEqualsWithDelta(). 2021-05-25 01:07:43 +00:00
phpunit7 Tests: Minimize the chances of signature conflicts for assertEqualsWithDelta(). 2021-05-25 01:07:43 +00:00
abstract-testcase.php Tests: Use better assertions in WP_UnitTestCase_Base::assertEqualFields(): 2021-07-22 18:49:24 +00:00
bootstrap.php Tests: Move and fix incorrectly placed tests for block supported styles. 2021-07-26 17:39:53 +00:00
class-basic-object.php REST API: Support 'object' and 'array' types in register_meta() schemas. 2019-08-15 17:16:21 +00:00
class-basic-subclass.php Build/Test tools: Remove unnecessary PHP functionality tests from the test suite. 2017-12-09 23:08:24 +00:00
class-jsonserializable-object.php Code Modernization: Fix "JsonSerializable_Object::jsonSerialize() should be compatible with JsonSerializable::jsonSerialize(): mixed" error on PHP 8.1. 2021-07-30 14:46:30 +00:00
class-wp-fake-block-type.php Blocks: Introduce WP_Block_Type and WP_Block_Type_Registry classes. 2018-12-13 09:43:29 +00:00
class-wp-rest-test-configurable-controller.php REST API: Don't assume all item schemas have properties. 2020-02-20 16:56:17 +00:00
class-wp-rest-test-search-handler.php REST API: Introduce controller for searching across post types. 2018-12-13 09:37:05 +00:00
class-wp-sitemaps-empty-test-provider.php Sitemaps: Add XML sitemaps functionality to WordPress. 2020-06-17 15:22:49 +00:00
class-wp-sitemaps-large-test-provider.php Sitemaps: Correctly enforce maximum number of sitemaps in index. 2020-07-21 13:55:45 +00:00
class-wp-sitemaps-test-provider.php Sitemaps: Add XML sitemaps functionality to WordPress. 2020-06-17 15:22:49 +00:00
class-wp-test-stream.php Build/Test Tools: Add seeking support to stream test library. 2021-04-20 03:01:55 +00:00
exceptions.php Docs: Improve documentation for tests/phpunit/includes/testcase-ajax.php. 2020-01-05 15:31:10 +00:00
factory.php Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
functions.php Block Editor: Include the page list block server-side code. 2021-06-08 18:11:31 +00:00
install.php Build/Test: Die with an error if populate_network fails 2020-06-03 21:02:42 +00:00
listener-loader.php Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
mock-fs.php Docs: Improve inline comments per the documentation standards. 2020-01-29 00:43:23 +00:00
mock-image-editor.php REST API: Introduce endpoint for editing images. 2020-07-04 04:13:17 +00:00
mock-mailer.php Build/Test Tools: Various docblock improvements within test utilities. 2021-02-09 13:22:47 +00:00
normalize-xml.xsl Sitemaps: Add XML sitemaps functionality to WordPress. 2020-06-17 15:22:49 +00:00
object-cache.php Docs: Improve DocBlocks in phpunit/includes/object-cache.php per the documentation standards. 2020-01-29 00:36:17 +00:00
plural-form-function.php Code Modernization: Change create_function() in phpunit/includes/plural-form-function.php to closure. 2020-08-13 12:32:03 +00:00
speed-trap-listener.php Coding Standards: Move assignment out of condition in phpunit/includes/speed-trap-listener.php. 2021-05-25 11:54:28 +00:00
spy-rest-server.php Docs: Improve documentation for tests/phpunit/includes/spy-rest-server.php. 2020-02-11 00:18:28 +00:00
testcase-ajax.php Build/Test Tools: Fix and standardise calls to the tearDown() method in the test suite. 2021-02-27 17:08:26 +00:00
testcase-canonical.php Tests: Replace most instances of assertEquals() in phpunit/includes/ with assertSame(). 2021-02-10 13:23:42 +00:00
testcase-rest-api.php Tests: Replace most instances of assertEquals() in phpunit/includes/ with assertSame(). 2021-02-10 13:23:42 +00:00
testcase-rest-controller.php Build/Test Tools: Fix and standardise calls to the tearDown() method in the test suite. 2021-02-27 17:08:26 +00:00
testcase-rest-post-type-controller.php Tests: Use more appropriate assertions in various tests. 2021-07-10 11:15:44 +00:00
testcase-xml.php Tests: Replace most instances of assertEquals() in phpunit/includes/ with assertSame(). 2021-02-10 13:23:42 +00:00
testcase-xmlrpc.php Tests: Use shared fixtures in XML-RPC new comment unit tests. 2020-10-22 00:17:10 +00:00
testcase.php Tests: Use more appropriate assertions in various tests. 2021-07-19 13:29:45 +00:00
trac.php I18N: Restore the "Error:" prefix for error messages. 2020-06-21 13:58:46 +00:00
utils.php Build/Test Tools: Various docblock improvements within test utilities. 2021-02-09 13:22:47 +00:00
wp-profiler.php Docs: Improve inline comments per the documentation standards. 2020-01-29 00:43:23 +00:00