| Current Path : /var/www/iplanru/data/www/i-plan.ru/templates/yoo_everest/warp/src/Warp/Http/ |
| Current File : /var/www/iplanru/data/www/i-plan.ru/templates/yoo_everest/warp/src/Warp/Http/Client.php |
<?php
/**
* @package Warp Theme Framework
* @author YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license http://www.gnu.org/licenses/gpl.html GNU/GPL
*/
namespace Warp\Http;
/**
* HTTP client class.
*/
class Client
{
/**
* Current transport class.
*
* @var string
*/
protected $transport;
/**
* Available transport classes.
*
* @var array
*/
protected $transports = array(
'Warp\Http\Transport\CurlTransport',
'Warp\Http\Transport\StreamTransport',
'Warp\Http\Transport\SocketTransport'
);
/**
* Constructor.
*/
public function __construct()
{
// check available library support
foreach ($this->transports as $classname) {
$transport = new $classname;
if ($transport->available()) {
$this->transport = $transport;
break;
}
}
}
/**
* Execute a GET HTTP request.
*
* @param string $url
* @param array $options
*
* @return mixed
*/
public function get($url, $options = array())
{
return $this->request($url, $options);
}
/**
* Execute a POST HTTP request.
*
* @param string $url
* @param string $data
* @param array $options
*
* @return mixed
*/
public function post($url, $data = null, $options = array())
{
return $this->request($url, array_merge(array('method' => 'POST', 'body' => $data), $options));
}
/**
* Execute a PUT HTTP request.
*
* @param string $url
* @param string $data
* @param array $options
*
* @return mixed
*/
public function put($url, $data = null, $options = array())
{
return $this->request($url, array_merge(array('method' => 'PUT', 'body' => $data), $options));
}
/**
* Execute a HTTP request.
*
* @param string $url
* @param array $options
*
* @return mixed
*/
public function request($url, $options = array())
{
if ($this->transport) {
return $this->transport->request($url, $options);
}
return false;
}
}