1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129:
<?php
/**
* Upwork auth library for using with public API by OAuth
*
* @final
* @package UpworkAPI
* @since 04/21/2014
* @copyright Copyright 2014(c) Upwork.com
* @author Maksym Novozhylov <mnovozhilov@upwork.com>
* @license Upwork's API Terms of Use {@link https://developers.upwork.com/api-tos.html}
*/
namespace Upwork\API;
use Upwork\API\ApiException as ApiException;
/**
* Config factory
*/
final class Config
{
/**
* @var Consumer key
*/
static private $_consumerKey;
/**
* @var Consumer secret
*/
static private $_consumerSecret;
/**
* @var Received access token
*/
static private $_accessToken;
/**
* @var Received access secret
*/
static private $_accessSecret;
/**
* @var Received request token
*/
static private $_requestToken;
/**
* @var Received request secret
*/
static private $_requestSecret;
/**
* @var OAuth verifier from authorization screen
*/
static private $_verifier;
/**
* @var Application mode, i.e. web or nonweb
*/
static private $_mode = 'nonweb';
/**
* @var Type of auth
*/
static private $_authType = 'OAuth1'; // as of now only oauth 1.0a is supported
/**
* @var Signature method
*/
static private $_sigMethod = 'HMAC-SHA1';
/**
* @var SSL verification
*/
static private $_verifySsl = true;
/**
* @var Debug mode
*/
static private $_debug = false;
/**
* Constructor
*
* @param array $data Array of parameters
* @throws ApiException Unknown property
*/
public function __construct(array $data)
{
foreach ($data as $k => $v) {
$res = self::set($k, $v);
if (!$res) {
throw new ApiException('Property [' . $k . '] is unknown or can not be set.');
}
}
}
/**
* Set option
*
* @param string $option Option name
* @param mixed $value Option value
* @access public
* @return boolean
*/
public static function set($option, $value)
{
$name = '_' . $option;
$r = new \ReflectionClass('\\' . __CLASS__);
try {
$r->getProperty($name);
self::$$name = $value;
return true;
} catch (\ReflectionException $e) {
return false;
}
}
/**
* Get option
*
* @param string $option Option name
* @static
* @access public
* @return mixed
* @throws ApiException Wrong property
*/
public static function get($option)
{
$name = '_' . $option;
if (!property_exists('Upwork\API\Config', $name)) {
throw new ApiException('Wrong property name requested.');
}
return self::$$name;
}
}