You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.5 KiB
157 lines
4.5 KiB
<?php |
|
|
|
namespace Guzzle\Http; |
|
|
|
use Guzzle\Http\Client; |
|
use Guzzle\Http\ClientInterface; |
|
use Guzzle\Stream\StreamRequestFactoryInterface; |
|
use Guzzle\Stream\PhpStreamRequestFactory; |
|
|
|
/** |
|
* Simplified interface to Guzzle that does not require a class to be instantiated |
|
*/ |
|
final class StaticClient |
|
{ |
|
/** @var Client Guzzle client */ |
|
private static $client; |
|
|
|
/** |
|
* Mount the client to a simpler class name for a specific client |
|
* |
|
* @param string $className Class name to use to mount |
|
* @param ClientInterface $client Client used to send requests |
|
*/ |
|
public static function mount($className = 'Guzzle', ClientInterface $client = null) |
|
{ |
|
class_alias(__CLASS__, $className); |
|
if ($client) { |
|
self::$client = $client; |
|
} |
|
} |
|
|
|
/** |
|
* @param string $method HTTP request method (GET, POST, HEAD, DELETE, PUT, etc) |
|
* @param string $url URL of the request |
|
* @param array $options Options to use with the request. See: Guzzle\Http\Message\RequestFactory::applyOptions() |
|
* @return \Guzzle\Http\Message\Response|\Guzzle\Stream\Stream |
|
*/ |
|
public static function request($method, $url, $options = array()) |
|
{ |
|
// @codeCoverageIgnoreStart |
|
if (!self::$client) { |
|
self::$client = new Client(); |
|
} |
|
// @codeCoverageIgnoreEnd |
|
|
|
$request = self::$client->createRequest($method, $url, null, null, $options); |
|
|
|
if (isset($options['stream'])) { |
|
if ($options['stream'] instanceof StreamRequestFactoryInterface) { |
|
return $options['stream']->fromRequest($request); |
|
} elseif ($options['stream'] == true) { |
|
$streamFactory = new PhpStreamRequestFactory(); |
|
return $streamFactory->fromRequest($request); |
|
} |
|
} |
|
|
|
return $request->send(); |
|
} |
|
|
|
/** |
|
* Send a GET request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function get($url, $options = array()) |
|
{ |
|
return self::request('GET', $url, $options); |
|
} |
|
|
|
/** |
|
* Send a HEAD request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function head($url, $options = array()) |
|
{ |
|
return self::request('HEAD', $url, $options); |
|
} |
|
|
|
/** |
|
* Send a DELETE request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function delete($url, $options = array()) |
|
{ |
|
return self::request('DELETE', $url, $options); |
|
} |
|
|
|
/** |
|
* Send a POST request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function post($url, $options = array()) |
|
{ |
|
return self::request('POST', $url, $options); |
|
} |
|
|
|
/** |
|
* Send a PUT request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function put($url, $options = array()) |
|
{ |
|
return self::request('PUT', $url, $options); |
|
} |
|
|
|
/** |
|
* Send a PATCH request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function patch($url, $options = array()) |
|
{ |
|
return self::request('PATCH', $url, $options); |
|
} |
|
|
|
/** |
|
* Send an OPTIONS request |
|
* |
|
* @param string $url URL of the request |
|
* @param array $options Array of request options |
|
* |
|
* @return \Guzzle\Http\Message\Response |
|
* @see Guzzle::request for a list of available options |
|
*/ |
|
public static function options($url, $options = array()) |
|
{ |
|
return self::request('OPTIONS', $url, $options); |
|
} |
|
}
|
|
|