Merge pull request #145 from zachborboa/master

Fix #82: Allow setting the base url for requests in the constructor
This commit is contained in:
Zach Borboa
2015-02-22 23:27:36 +07:00
4 changed files with 59 additions and 11 deletions
+8 -8
View File
@@ -146,25 +146,25 @@ $multi_curl->start();
### Available Methods
```php
Curl::__construct()
Curl::__construct($base_url = null)
Curl::__destruct()
Curl::beforeSend($callback)
Curl::buildPostData($data)
Curl::call($function)
Curl::close()
Curl::complete($callback)
Curl::delete($url, $data = array())
Curl::delete($url_mixed, $data = array())
Curl::download($url, $filename)
Curl::error($callback)
Curl::exec($ch = null)
Curl::get($url, $data = array())
Curl::get($url_mixed, $data = array())
Curl::getOpt($option)
Curl::head($url, $data = array())
Curl::head($url_mixed, $data = array())
Curl::headerCallback($ch, $header)
Curl::options($url, $data = array())
Curl::patch($url, $data = array())
Curl::post($url, $data = array())
Curl::put($url, $data = array())
Curl::options($url_mixed, $data = array())
Curl::patch($url_mixed, $data = array())
Curl::post($url_mixed, $data = array())
Curl::put($url_mixed, $data = array())
Curl::setBasicAuthentication($username, $password = '')
Curl::setCookie($key, $value)
Curl::setCookieFile($cookie_file)
+1 -1
View File
@@ -9,7 +9,7 @@
"name": "Zach Borboa"
}
],
"version": "3.1.3",
"version": "3.2.3",
"require": {
"php": ">=5.3",
"ext-curl": "*"
+3 -2
View File
@@ -4,7 +4,7 @@ namespace Curl;
class Curl
{
const VERSION = '3.1.3';
const VERSION = '3.2.3';
const DEFAULT_TIMEOUT = 30;
public $curl;
@@ -43,7 +43,7 @@ class Curl
private $json_pattern = '~^application/(?:json|vnd\.api\+json)~i';
private $xml_pattern = '~^(?:text/|application/(?:atom\+|rss\+)?)xml~i';
public function __construct()
public function __construct($base_url = null)
{
if (!extension_loaded('curl')) {
throw new \ErrorException('cURL library is not loaded');
@@ -58,6 +58,7 @@ class Curl
$this->setOpt(CURLOPT_HEADERFUNCTION, array($this, 'headerCallback'));
$this->setOpt(CURLOPT_RETURNTRANSFER, true);
$this->headers = new CaseInsensitiveArray();
$this->setURL($base_url);
}
public function beforeSend($callback)
+47
View File
@@ -131,6 +131,53 @@ class CurlTest extends PHPUnit_Framework_TestCase
$this->assertEquals(Test::TEST_URL . '?' . http_build_query($data), $test->curl->url);
}
public function testSetUrlInConstructor()
{
$data = array('key' => 'value');
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'get');
$curl->delete($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('key=value', $curl->response);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'get');
$curl->get($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('key=value', $curl->response);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'get');
$curl->head($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('HEAD /?key=value HTTP/1.1', $curl->request_headers['Request-Line']);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'get');
$curl->options($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('key=value', $curl->response);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'request_method');
$curl->patch($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('PATCH', $curl->response);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'post');
$curl->post($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('key=value', $curl->response);
$curl = new Curl(Test::TEST_URL);
$curl->setHeader('X-DEBUG-TEST', 'put');
$curl->put($data);
$this->assertEquals(Test::TEST_URL, $curl->base_url);
$this->assertEquals('key=value', $curl->response);
}
public function testSetUrl()
{
$data = array('key' => 'value');