Skip to content

Commit f79dfb7

Browse files
committed
Add support php 8.4 - undo pull 220
1 parent a51d5b5 commit f79dfb7

File tree

5 files changed

+33
-23
lines changed

5 files changed

+33
-23
lines changed

src/Transport/CurlerRequest.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class CurlerRequest
106106
/**
107107
* @param bool $id
108108
*/
109-
public function __construct($id = false, $handle = null)
109+
public function __construct($id = false)
110110
{
111111
$this->id = $id;
112112

@@ -127,7 +127,23 @@ public function __construct($id = false, $handle = null)
127127
CURLOPT_RETURNTRANSFER => TRUE,
128128
CURLOPT_USERAGENT => 'smi2/PHPClickHouse/client',
129129
);
130-
$this->handle = $handle;
130+
}
131+
132+
/**
133+
*
134+
*/
135+
public function __destruct()
136+
{
137+
$this->close();
138+
}
139+
140+
141+
public function close()
142+
{
143+
if ($this->handle) {
144+
curl_close($this->handle);
145+
}
146+
$this->handle = null;
131147
}
132148

133149
/**
@@ -358,7 +374,10 @@ public function isPersistent()
358374
*/
359375
public function keepAlive(int $sec = 60)
360376
{
361-
$this->headers['Connection'] = 'keep-alive';
377+
$this->options[CURLOPT_FORBID_REUSE] = TRUE;
378+
$this->headers['Connection'] = 'Keep-Alive';
379+
$this->headers['Keep-Alive'] = $sec;
380+
362381
return $this;
363382
}
364383

src/Transport/CurlerRolling.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,16 +239,21 @@ public function getRunningRequests()
239239

240240
/**
241241
* @param CurlerRequest $request
242+
* @param bool $auto_close
242243
* @return mixed
243244
* @throws TransportException
244245
*/
245-
public function execOne(CurlerRequest $request)
246+
public function execOne(CurlerRequest $request, $auto_close = false)
246247
{
247248
$h = $request->handle();
248249
curl_exec($h);
249250

250251
$request->setResponse($this->makeResponse($h));
251252

253+
if ($auto_close) {
254+
$request->close();
255+
}
256+
252257
return $request->response()->http_code();
253258
}
254259

src/Transport/Http.php

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ public function __construct($host, $port, $username, $password, $authMethod = nu
122122
$this->_settings = new Settings();
123123

124124
$this->setCurler();
125-
$this->setHandle();
126125
}
127126

128127

@@ -242,7 +241,7 @@ private function getUrl($params = []): string
242241
*/
243242
private function newRequest($extendinfo): CurlerRequest
244243
{
245-
$new = new CurlerRequest(false, $this->handle);
244+
$new = new CurlerRequest();
246245

247246
switch ($this->_authMethod) {
248247
case self::AUTH_METHOD_QUERY_STRING:
@@ -577,7 +576,7 @@ public function getRequestWrite(Query $query): CurlerRequest
577576
*/
578577
public function ping(): bool
579578
{
580-
$request = new CurlerRequest(false, $this->handle);
579+
$request = new CurlerRequest();
581580
$request->url($this->getUri())->verbose(false)->GET()->connectTimeOut($this->getConnectTimeOut());
582581
$this->_curler->execOne($request);
583582

@@ -765,7 +764,7 @@ private function streaming(Stream $streamRW, CurlerRequest $request): Statement
765764
}
766765

767766

768-
$this->_curler->execOne($request);
767+
$this->_curler->execOne($request, true);
769768
$response = new Statement($request);
770769
if ($response->isError()) {
771770
$response->error();
@@ -808,17 +807,4 @@ public function streamWrite(Stream $streamWrite, $sql, $bindings = []): Statemen
808807
$request = $this->writeStreamData($sql);
809808
return $this->streaming($streamWrite, $request);
810809
}
811-
812-
public function __destruct()
813-
{
814-
if ($this->handle) {
815-
curl_close($this->handle);
816-
}
817-
}
818-
819-
public function setHandle()
820-
{
821-
$this->handle = curl_init();
822-
}
823-
824810
}

src/Transport/StreamInsert.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public function insert($callback)
6161
//
6262
$this->request->header('Transfer-Encoding', 'chunked');
6363
$this->request->setReadFunction($callback);
64-
$this->curlerRolling->execOne($this->request);
64+
$this->curlerRolling->execOne($this->request, true);
6565
$statement = new Statement($this->request);
6666
$statement->error();
6767
return $statement;

tests/docker-compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services:
66
hostname: clickhouse
77
container_name: clickhouse
88
ports:
9-
- 9000:9000
9+
- 19000:9000
1010
- 8123:8123
1111
sysctls:
1212
net.core.somaxconn: 1024

0 commit comments

Comments
 (0)