Chris@0: getHubs(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Allows the external environment to make ZendOAuth use a specific Chris@0: * Client instance. Chris@0: * Chris@0: * @param Http\Client $httpClient Chris@0: * @return void Chris@0: */ Chris@0: public static function setHttpClient(Http\Client $httpClient) Chris@0: { Chris@0: static::$httpClient = $httpClient; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Return the singleton instance of the HTTP Client. Note that Chris@0: * the instance is reset and cleared of previous parameters GET/POST. Chris@0: * Headers are NOT reset but handled by this component if applicable. Chris@0: * Chris@0: * @return Http\Client Chris@0: */ Chris@0: public static function getHttpClient() Chris@0: { Chris@12: if (! isset(static::$httpClient)) { Chris@0: static::$httpClient = new Http\Client; Chris@0: } else { Chris@0: static::$httpClient->resetParameters(); Chris@0: } Chris@0: return static::$httpClient; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Simple mechanism to delete the entire singleton HTTP Client instance Chris@0: * which forces a new instantiation for subsequent requests. Chris@0: * Chris@0: * @return void Chris@0: */ Chris@0: public static function clearHttpClient() Chris@0: { Chris@0: static::$httpClient = null; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Set the Escaper instance Chris@0: * Chris@0: * If null, resets the instance Chris@0: * Chris@0: * @param null|Escaper $escaper Chris@0: */ Chris@0: public static function setEscaper(Escaper $escaper = null) Chris@0: { Chris@0: static::$escaper = $escaper; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Get the Escaper instance Chris@0: * Chris@0: * If none registered, lazy-loads an instance. Chris@0: * Chris@0: * @return Escaper Chris@0: */ Chris@0: public static function getEscaper() Chris@0: { Chris@0: if (null === static::$escaper) { Chris@0: static::setEscaper(new Escaper()); Chris@0: } Chris@0: return static::$escaper; Chris@0: } Chris@0: Chris@0: /** Chris@0: * RFC 3986 safe url encoding method Chris@0: * Chris@0: * @param string $string Chris@0: * @return string Chris@0: */ Chris@0: public static function urlencode($string) Chris@0: { Chris@0: $escaper = static::getEscaper(); Chris@0: $rawencoded = $escaper->escapeUrl($string); Chris@0: $rfcencoded = str_replace('%7E', '~', $rawencoded); Chris@0: return $rfcencoded; Chris@0: } Chris@0: }