diff --git a/README.md b/README.md index 80bc72d..a4c9728 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/composer.json b/composer.json index c61438f..8c951b5 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "name": "Zach Borboa" } ], - "version": "3.1.3", + "version": "3.2.3", "require": { "php": ">=5.3", "ext-curl": "*" diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index 9f34d7c..60383cb 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -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) diff --git a/tests/PHPCurlClass/PHPCurlClassTest.php b/tests/PHPCurlClass/PHPCurlClassTest.php index 9ff0efb..4eb67c8 100644 --- a/tests/PHPCurlClass/PHPCurlClassTest.php +++ b/tests/PHPCurlClass/PHPCurlClassTest.php @@ -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');