mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-08-30 12:14:36 +00:00
Merge pull request #145 from zachborboa/master
Fix #82: Allow setting the base url for requests in the constructor
This commit is contained in:
@@ -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
@@ -9,7 +9,7 @@
|
||||
"name": "Zach Borboa"
|
||||
}
|
||||
],
|
||||
"version": "3.1.3",
|
||||
"version": "3.2.3",
|
||||
"require": {
|
||||
"php": ">=5.3",
|
||||
"ext-curl": "*"
|
||||
|
||||
+3
-2
@@ -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)
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user