mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-08-30 12:14:36 +00:00
Allow setting the base url for requests in the constructor (Curl::__construct($base_url = null))
This commit is contained in:
@@ -146,7 +146,7 @@ $multi_curl->start();
|
||||
|
||||
### Available Methods
|
||||
```php
|
||||
Curl::__construct()
|
||||
Curl::__construct($base_url = null)
|
||||
Curl::__destruct()
|
||||
Curl::beforeSend($callback)
|
||||
Curl::buildPostData($data)
|
||||
|
||||
+2
-1
@@ -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