Added an ability to provide Curl Options in Configuration

- Removed http.Retry, and http.ConnectionTimeout from configuration
- Added ability to provide Constant and its value in Configuration File
This commit is contained in:
japatel
2015-01-10 21:04:24 -06:00
parent 810fe7994c
commit dd99971e50
6 changed files with 34 additions and 9 deletions

View File

@@ -54,12 +54,13 @@ class PayPalHttpConfig
*
* @param string $url
* @param string $method HTTP method (GET, POST etc) defaults to POST
* @param array $configs All Configurations
*/
public function __construct($url = null, $method = self::HTTP_POST)
public function __construct($url = null, $method = self::HTTP_POST, $configs = array())
{
$this->url = $url;
$this->method = $method;
$this->curlOptions = self::$defaultCurlOptions;
$this->curlOptions = $this->getHttpConstantsFromConfigs($configs, 'http.') + self::$defaultCurlOptions;
// Update the Cipher List based on OpenSSL or NSS settings
$curl = curl_version();
$sslVersion = isset($curl['ssl_version']) ? $curl['ssl_version'] : '';
@@ -274,4 +275,28 @@ class PayPalHttpConfig
{
$this->curlOptions[CURLOPT_USERAGENT] = $userAgentString;
}
/**
* Retrieves an array of constant key, and value based on Prefix
*
* @param array $configs
* @param $prefix
* @return array
*/
public function getHttpConstantsFromConfigs($configs = array(), $prefix)
{
$arr = array();
if ($prefix != null && is_array($configs)) {
foreach ($configs as $k => $v) {
// Check if it startsWith
if (substr($k, 0, strlen($prefix)) === $prefix) {
$newKey = ltrim($k, $prefix);
if (defined($newKey)) {
$arr[constant($newKey)] = $v;
}
}
}
}
return $arr;
}
}