add debug switch to configuration

This commit is contained in:
wing328 2015-05-26 23:20:34 +08:00
parent 095771d345
commit 171bf969c7
4 changed files with 29 additions and 0 deletions

View File

@ -240,10 +240,30 @@ class APIClient {
// Set user agent
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
// debugging for curl
if (Configuration::$debug) {
error_log("[DEBUG] HTTP Request body ~BEGIN~\n".print_r($postData, true)."\n~END~\n", 3, Configuration::$debug_file);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
try {
$fp = fopen(Configuration::$debug_file, 'w');
curl_setopt($curl, CURLOPT_STDERR, $fp);
} catch ( \Exception $e ) {
error_log("Exception in enabling curl debug: ".print_r($e, true), 3, Configuration::$debug_file);
}
} else {
curl_setopt($curl, CURLOPT_VERBOSE, 0);
}
// Make the request
$response = curl_exec($curl);
$response_info = curl_getinfo($curl);
// debug HTTP response body
if (Configuration::$debug) {
error_log("[DEBUG] HTTP Response body ~BEGIN~\n".print_r($response, true)."\n~END~\n", 3, Configuration::$debug_file);
}
// Handle the response
if ($response_info['http_code'] == 0) {
throw new APIClientException("TIMEOUT: api call to " . $url .

View File

@ -34,6 +34,9 @@ class Configuration {
// an instance of APIClient
public static $apiClient;
public static $debug = false; // by default debugging is disabled
public static $debug_file = 'php://output'; //output debug log to STDOUT by default
/*
* manually initalize API client
*/

View File

@ -7,6 +7,9 @@ class PetApiTest extends \PHPUnit_Framework_TestCase
// add a new pet (id 10005) to ensure the pet object is available for all the tests
public static function setUpBeforeClass() {
// enable debugging
//SwaggerClient\Configuration::$debug = true;
// skip initializing the API client as it should be automatic
//$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
// new pet

View File

@ -6,6 +6,9 @@ require_once('SwaggerClient-php/SwaggerClient.php');
//$api_client = new SwaggerClient\APIClient('http://petstore.swagger.io/v2');
//$api_client->addDefaultHeader("test1", "value1");
// to enable logging
//SwaggerClient\Configuration::$debug = true;
$petId = 10005; // ID of pet that needs to be fetched
try {
//$pet_api = new SwaggerClient\PetAPI($api_client);