44
55namespace Brick \Std \Curl ;
66
7+ use function curl_copy_handle ;
8+ use function curl_error ;
9+ use function curl_exec ;
10+ use function curl_getinfo ;
11+ use function curl_init ;
12+ use function curl_setopt ;
13+ use function curl_setopt_array ;
14+ use function curl_version ;
15+
16+ use const CURLOPT_RETURNTRANSFER ;
17+
718/**
819 * An object wrapper for cURL.
920 */
10- class Curl
21+ final class Curl
1122{
1223 /**
1324 * The cURL handle.
@@ -18,38 +29,16 @@ class Curl
1829
1930 /**
2031 * Class constructor.
21- *
22- * @param string|null $url
2332 */
2433 public function __construct (?string $ url = null )
2534 {
2635 $ this ->curl = ($ url === null ) ? curl_init () : curl_init ($ url );
2736 }
2837
2938 /**
30- * Class destructor.
31- */
32- public function __destruct ()
33- {
34- curl_close ($ this ->curl );
35- }
36-
37- /**
38- * Clone handler.
39- *
40- * @return void
41- */
42- public function __clone ()
43- {
44- $ this ->curl = curl_copy_handle ($ this ->curl );
45- }
46-
47- /**
48- * @return string
49- *
5039 * @throws CurlException
5140 */
52- public function execute () : string
41+ public function execute (): string
5342 {
5443 // This option must always be set.
5544 curl_setopt ($ this ->curl , CURLOPT_RETURNTRANSFER , true );
@@ -70,10 +59,8 @@ public function execute() : string
7059 * Otherwise, an associative array of values is returned.
7160 *
7261 * @param int|null $opt One of the CURLINFO_* constants, or null to return all.
73- *
74- * @return mixed
7562 */
76- public function getInfo (?int $ opt = null )
63+ public function getInfo (?int $ opt = null ): mixed
7764 {
7865 if ($ opt === null ) {
7966 return curl_getinfo ($ this ->curl );
@@ -82,32 +69,26 @@ public function getInfo(?int $opt = null)
8269 return curl_getinfo ($ this ->curl , $ opt );
8370 }
8471
85- /**
86- * @param int $option
87- * @param mixed $value
88- *
89- * @return void
90- */
91- public function setOption (int $ option , $ value ) : void
72+ public function setOption (int $ option , mixed $ value ): void
9273 {
9374 curl_setopt ($ this ->curl , $ option , $ value );
9475 }
9576
96- /**
97- * @param array $options
98- *
99- * @return void
100- */
101- public function setOptions (array $ options ) : void
77+ public function setOptions (array $ options ): void
10278 {
10379 curl_setopt_array ($ this ->curl , $ options );
10480 }
10581
82+ public static function getVersion (): array
83+ {
84+ return curl_version ();
85+ }
86+
10687 /**
107- * @return array
88+ * Clone handler.
10889 */
109- public static function getVersion () : array
90+ public function __clone ()
11091 {
111- return curl_version ( );
92+ $ this -> curl = curl_copy_handle ( $ this -> curl );
11293 }
11394}
0 commit comments