Merge pull request #790 from zachborboa/dev

Make method to display curl option value public
This commit is contained in:
Zach Borboa
2023-06-13 02:21:09 -07:00
committed by GitHub
6 changed files with 85 additions and 2 deletions
+3
View File
@@ -208,6 +208,7 @@ Curl::complete($callback)
Curl::delete($url, $query_parameters = [], $data = [])
Curl::diagnose($return = false)
Curl::disableTimeout()
Curl::displayCurlOptionValue($option, $value)
Curl::download($url, $mixed_filename)
Curl::error($callback)
Curl::exec($ch = null)
@@ -233,6 +234,7 @@ Curl::getId()
Curl::getInfo($opt = null)
Curl::getJsonDecoder()
Curl::getOpt($option)
Curl::getOptions()
Curl::getRawResponse()
Curl::getRawResponseHeaders()
Curl::getRemainingRetries()
@@ -245,6 +247,7 @@ Curl::getRetries()
Curl::getRetryDecider()
Curl::getSuccessCallback()
Curl::getUrl()
Curl::getUserSetOptions()
Curl::getXmlDecoder()
Curl::head($url, $data = [])
Curl::isChildOfMultiCurl()
@@ -0,0 +1,10 @@
<?php
require __DIR__ . '/../vendor/autoload.php';
use Curl\Curl;
$option = 41; // CURLOPT_VERBOSE = int(41).
$value = true;
$curl = new Curl();
$curl->displayCurlOptionValue($option, $value); // "CURLOPT_VERBOSE: true".
@@ -0,0 +1,41 @@
<?php
require __DIR__ . '/../vendor/autoload.php';
use Curl\Curl;
$curl = new Curl();
$curl->setUserAgent('some agent');
$curl->setTimeout(60);
foreach ($curl->getOptions() as $option => $value) {
echo 'option ' . $option . ':' . "\n";
$curl->displayCurlOptionValue($option, $value);
echo "\n";
}
// option 181:
// CURLOPT_PROTOCOLS: 3 (CURLPROTO_HTTP | CURLPROTO_HTTPS)
//
// option 182:
// CURLOPT_REDIR_PROTOCOLS: 3 (CURLPROTO_HTTP | CURLPROTO_HTTPS)
//
// option 10018:
// CURLOPT_USERAGENT: some agent
//
// option 13:
// CURLOPT_TIMEOUT: 60
//
// option 2:
// CURLINFO_HEADER_OUT: true
//
// option 20056:
// CURLOPT_PROGRESSFUNCTION: (callable)
//
// option 43:
// CURLOPT_NOPROGRESS: false
//
// option 20079:
// CURLOPT_HEADERFUNCTION: (callable)
//
// option 19913:
// CURLOPT_RETURNTRANSFER: true
@@ -0,0 +1,20 @@
<?php
require __DIR__ . '/../vendor/autoload.php';
use Curl\Curl;
$curl = new Curl();
$curl->setUserAgent('some agent');
$curl->setTimeout(60);
foreach ($curl->getUserSetOptions() as $option => $value) {
echo 'user set option ' . $option . ':' . "\n";
$curl->displayCurlOptionValue($option, $value);
echo "\n";
}
// user set option 10018:
// CURLOPT_USERAGENT: some agent
//
// user set option 13:
// CURLOPT_TIMEOUT: 60
+11 -1
View File
@@ -1554,6 +1554,16 @@ class Curl extends BaseCurl
return $this->url;
}
public function getOptions()
{
return $this->options;
}
public function getUserSetOptions()
{
return $this->userSetOptions;
}
public function getRequestHeaders()
{
return $this->requestHeaders;
@@ -1731,7 +1741,7 @@ class Curl extends BaseCurl
return $curl_const_by_code;
}
private function displayCurlOptionValue($option, $value)
public function displayCurlOptionValue($option, $value)
{
if (isset($this->curlOptionCodeConstants[$option])) {
echo $this->curlOptionCodeConstants[$option] . ':';
@@ -3482,7 +3482,6 @@ class PHPMultiCurlClassTest extends \PHPUnit\Framework\TestCase
$curl = new Curl();
$curl->setUrl(Test::TEST_URL);
$curl->setOpt(CURLOPT_HTTPHEADER, $header_fields);
$curl->setUserAgent('agent');
$this->assertEquals($header_fields, $curl->getOpt(CURLOPT_HTTPHEADER));