/** * This method is responsible for performing a single request. * * @param RequestInterface $request * @return ResponseInterface */ function doRequest(RequestInterface $request) { $response = null; $this->emit('doRequest', [$request, &$response]); // If nothing modified $response, we're using the default behavior. if (is_null($response)) { return parent::doRequest($request); } else { return $response; } }