Make WordPress Core

source: trunk/tests/phpunit/includes/spy-rest-server.php @ 55027

Last change on this file since 55027 was 55027, checked in by SergeyBiryukov, 3 years ago

Code Modernization: Rename parameters that use reserved keywords in phpunit/includes/spy-rest-server.php.

While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names.

This commit renames the $namespace parameter to $route_namespace in Spy_REST_Server::register_route().

Follow-up to [52946], [52996], [52997], [52998], [53003], [53014], [53029], [53039], [53116], [53117], [53137], [53174], [53184], [53185], [53192], [53193], [53198], [53203], [53207], [53215], [53216], [53220], [53230], [53232], [53236], [53239], [53240], [53242], [53243], [53245], [53246], [53257], [53269], [53270], [53271], [53272], [53273], [53274], [53275], [53276], [53277], [53281], [53283], [53284], [53285], [53287], [53364], [53365], [54927], [54929], [54930], [54931], [54932], [54933], [54938], [54943], [54944], [54945], [54946], [54947], [54948], [54950], [54951], [54952], [54956], [54959], [54960], [54961], [54962], [54964], [54965], [54969], [54970], [54971], [54972], [54996], [55000], [55011], [55013], [55014], [55015], [55016], [55017], [55020], [55021], [55023].

Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #56788.

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1<?php
2
3class Spy_REST_Server extends WP_REST_Server {
4
5        public $sent_headers        = array();
6        public $sent_body           = '';
7        public $last_request        = null;
8        public $override_by_default = false;
9        public $status              = null;
10
11        /**
12         * Gets the raw $endpoints data from the server.
13         *
14         * @return array
15         */
16        public function get_raw_endpoint_data() {
17                return $this->endpoints;
18        }
19
20        /**
21         * Allow calling protected methods from tests.
22         *
23         * @param string $method Method to call.
24         * @param array  $args   Arguments to pass to the method.
25         * @return mixed
26         */
27        public function __call( $method, $args ) {
28                return call_user_func_array( array( $this, $method ), $args );
29        }
30
31        /**
32         * Adds a header to the list of sent headers.
33         *
34         * @param string $header Header name.
35         * @param string $value  Header value.
36         */
37        public function send_header( $header, $value ) {
38                $this->sent_headers[ $header ] = $value;
39        }
40
41        /**
42         * Removes a header from the list of sent headers.
43         *
44         * @param string $header Header name.
45         */
46        public function remove_header( $header ) {
47                unset( $this->sent_headers[ $header ] );
48        }
49
50        /**
51         * Stores last set status.
52         *
53         * @param int $code HTTP status.
54         */
55        public function set_status( $status ) {
56                $this->status = $status;
57        }
58
59        /**
60         * Overrides the dispatch method so we can get a handle on the request object.
61         *
62         * @param  WP_REST_Request $request Request to attempt dispatching.
63         * @return WP_REST_Response Response returned by the callback.
64         */
65        public function dispatch( $request ) {
66                $this->last_request = $request;
67                return parent::dispatch( $request );
68        }
69
70        /**
71         * Overrides the register_route method so we can re-register routes internally if needed.
72         *
73         * @param string $route_namespace Namespace.
74         * @param string $route           The REST route.
75         * @param array  $route_args      Route arguments.
76         * @param bool   $override        Optional. Whether the route should be overridden if it already exists.
77         *                                Default false. Also set `$GLOBALS['wp_rest_server']->override_by_default = true`
78         *                                to set overrides when you don't have access to the caller context.
79         */
80        public function register_route( $route_namespace, $route, $route_args, $override = false ) {
81                parent::register_route( $route_namespace, $route, $route_args, $override || $this->override_by_default );
82        }
83
84        /**
85         * Serves the request and returns the result.
86         *
87         * @param string $path Optional. The request route. If not set, `$_SERVER['PATH_INFO']` will be used.
88         *                     Default null.
89         * @return null|false Null if not served and a HEAD request, false otherwise.
90         */
91        public function serve_request( $path = null ) {
92
93                ob_start();
94                $result          = parent::serve_request( $path );
95                $this->sent_body = ob_get_clean();
96                return $result;
97        }
98}
Note: See TracBrowser for help on using the repository browser.