<?php
/**
* A cURL library to fetch a large number of resources while only using
* a limited number of simultaneous connections
*
* @package RollingCurl
* @version 1.0
* @author Jeff Minard (http://jrm.cc/)
* @author Josh Fraser (www.joshfraser.com)
* @author Alexander Makarov (http://rmcreative.ru/)
* @license Apache License 2.0
* @link https://github.com/chuyskywalker/rolling-curl
*/
/**
* Class that represent a single curl request
*/
class RollingCurlRequest
{
/**
* @var string
*/
private $url;
/**
* @var string
*/
private $method;
/**
* @var string
*/
private $postData;
/**
* @var array
*/
private $headers;
/**
* @var array
*/
private $options = array();
/**
* @var mixed
*/
private $extraInfo;
/**
* @var string
*/
private $responseText;
/**
* @var array
*/
private $responseInfo;
/**
* @var string
*/
private $responseError;
/**
* @var int
*/
private $responseErrno;
/**
* @param string $url
* @param string $method
* @return \RollingCurl\Request
*/
function __construct($url, $method="GET")
{
$this->setUrl($url);
$this->setMethod($method);
}
/**
* You may wish to store some "extra" info with this request, you can put any of that here.
*
* @param mixed $extraInfo
* @return \RollingCurl\Request
*/
public function setExtraInfo($extraInfo)
{
$this->extraInfo = $extraInfo;
return $this;
}
/**
* @return mixed
*/
public function getExtraInfo()
{
return $this->extraInfo;
}
/**
* @param array $headers
* @return \RollingCurl\Request
*/
public function setHeaders($headers)
{
$this->headers = $headers;
return $this;
}
/**
* @return array
*/
public function getHeaders()
{
return $this->headers;
}
/**
* @param string $method
* @return \RollingCurl\Request
*/
public function setMethod($method)
{
$this->method = $method;
return $this;
}
/**
* @return string
*/
public function getMethod()
{
return $this->method;
}
/**
* @param array $options
* @throws \InvalidArgumentException
* @return \RollingCurl\Request
*/
public function setOptions($options)
{
if (!is_array($options)) {
throw new \InvalidArgumentException("options must be an array");
}
$this->options = $options;
return $this;
}
/**
* @param array $options
* @throws \InvalidArgumentException
* @return \RollingCurl\Request
*/
public function addOptions($options)
{
if (!is_array($options)) {
throw new \InvalidArgumentException("options must be an array");
}
$this->options = $options + $this->options;
return $this;
}
/**
* @return array
*/
public function getOptions()
{
return $this->options;
}
/**
* @param string $postData
* @return \RollingCurl\Request
*/
public function setPostData($postData)
{
$this->postData = $postData;
return $this;
}
/**
* @return string
*/
public function getPostData()
{
return $this->postData;
}
/**
* @param int $responseErrno
* @return \RollingCurl\Request
*/
public function setResponseErrno($responseErrno)
{
$this->responseErrno = $responseErrno;
return $this;
}
/**
* @return int
*/
public function getResponseErrno()
{
return $this->responseErrno;
}
/**
* @param string $responseError
* @return \RollingCurl\Request
*/
public function setResponseError($responseError)
{
$this->responseError = $responseError;
return $this;
}
/**
* @return string
*/
public function getResponseError()
{
return $this->responseError;
}
/**
* @param array $responseInfo
* @return \RollingCurl\Request
*/
public function setResponseInfo($responseInfo)
{
$this->responseInfo = $responseInfo;
return $this;
}
/**
* @return array
*/
public function getResponseInfo()
{
return $this->responseInfo;
}
/**
* @param string $responseText
* @return \RollingCurl\Request
*/
public function setResponseText($responseText)
{
$this->responseText = $responseText;
return $this;
}
/**
* @return string
*/
public function getResponseText()
{
return $this->responseText;
}
/**
* @param string $url
* @return \RollingCurl\Request
*/
public function setUrl($url)
{
$this->url = $url;
return $this;
}
/**
* @return string
*/
public function getUrl()
{
return $this->url;
}
}
|