Skip to content

Commit 33a8e49

Browse files
committed
Review
1 parent 08b718d commit 33a8e49

File tree

3 files changed

+75
-64
lines changed

3 files changed

+75
-64
lines changed

ext/mysqli/mysqli.stub.php

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,56 @@ class mysqli
88
{
99
public function __construct(?string $host = null, ?string $user = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null);
1010

11-
/** @return bool */
12-
public function autocommit(?bool $mode);
11+
/** @return bool|null */
12+
public function autocommit(bool $mode);
1313

14-
/** @return bool */
15-
public function begin_transaction(?int $flags = 0, ?string $name = '');
14+
/** @return bool|null */
15+
public function begin_transaction(int $flags = 0, string $name = '');
1616

1717
/** @return bool */
1818
public function change_user(?string $user, ?string $password, ?string $database);
1919

2020
/** @return string|null|bool */
2121
public function character_set_name();
2222

23-
/** @return bool */
23+
/** @return bool|null */
2424
public function close();
2525

26-
/** @return bool */
27-
public function commit(?int $flags = 0, ?string $name = 'UNKNOWN');
26+
/** @return bool|null */
27+
public function commit(int $flags = 0, string $name = 'UNKNOWN');
2828

2929
/** @return mysqli */
3030
public function connect(?string $host = null, ?string $user = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null);
3131

32-
/** @return bool */
32+
/** @return bool|null */
3333
public function dump_debug_info();
3434

3535
/** @return bool */
3636
public function debug(?string $debug_options);
3737

38-
/** @return object|bool|null */
38+
/** @return object|null|bool */
3939
public function get_charset();
4040

41-
/** @return string */
41+
/** @return string|null */
4242
public function get_client_info();
4343

4444
/** @return array */
4545
public function get_connection_stats();
4646

47-
/** @return string|null */
47+
/** @return string|null|bool */
4848
public function get_server_info();
4949

50-
/** @return mysqli_warning */
50+
/** @return mysqli_warning|null|false */
5151
public function get_warnings();
5252

5353
/** @return mysqli */
5454
public function init();
5555

56-
/** @return bool */
57-
public function kill(?int $connection_id);
56+
/** @return bool|null */
57+
public function kill(int $connection_id): bool|null;
5858

59-
/** @return bool */
60-
public function multi_query(?string $query);
59+
/** @return bool|null */
60+
public function multi_query(string $query);
6161

6262
/** @return bool */
6363
public function more_results();
@@ -141,6 +141,7 @@ public function refresh(?int $options);
141141

142142
class mysqli_warning
143143
{
144+
/** @return object|false */
144145
public function __construct();
145146

146147
/** @return bool */
@@ -211,7 +212,7 @@ public function bind_param(string $types, &...$vars);
211212
/** @return bool */
212213
public function bind_result(&...$vars);
213214

214-
/** @return bool */
215+
/** @return bool|null */
215216
public function close();
216217

217218
/** @return void|bool */
@@ -223,7 +224,7 @@ public function execute();
223224
/** @return bool */
224225
public function fetch();
225226

226-
/** @return mysqli_warning */
227+
/** @return mysqli_warning|null|false */
227228
public function get_warnings();
228229

229230
/** @return mysqli_result|bool */
@@ -262,17 +263,17 @@ class mysqli_sql_exception extends RuntimeException
262263

263264
function mysqli_affected_rows(mysqli $mysql_link): int|bool {}
264265

265-
function mysqli_autocommit(mysqli $mysql_link, bool $mode): bool {}
266+
function mysqli_autocommit(mysqli $mysql_link, bool $mode): bool|null {}
266267

267-
function mysqli_begin_transaction(mysqli $mysql_link, int $flags = 0, string $name = ''): bool {}
268+
function mysqli_begin_transaction(mysqli $mysql_link, int $flags = 0, string $name = ''): bool|null {}
268269

269270
function mysqli_change_user(mysqli $mysql_link, string $user, string $password, ?string $database): bool {}
270271

271-
function mysqli_character_set_name(mysqli $mysql_link): string|bool|null {}
272+
function mysqli_character_set_name(mysqli $mysql_link): string|null|bool {}
272273

273-
function mysqli_close(mysqli $mysql_link): bool {}
274+
function mysqli_close(mysqli $mysql_link): bool|null {}
274275

275-
function mysqli_commit(mysqli $mysql_link, int $flags = 0, string $name = 'UNKNOWN'): bool {}
276+
function mysqli_commit(mysqli $mysql_link, int $flags = 0, string $name = 'UNKNOWN'): bool|null {}
276277

277278
function mysqli_connect(?string $host = null, ?string $user = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null): mysqli|bool {}
278279

@@ -282,7 +283,7 @@ function mysqli_connect_error(): ?string {}
282283

283284
function mysqli_data_seek(mysqli_result $mysql_result, int $offset): bool {}
284285

285-
function mysqli_dump_debug_info(mysqli $mysql_link): bool {}
286+
function mysqli_dump_debug_info(mysqli $mysql_link): bool|null {}
286287

287288
function mysqli_debug(string $debug): bool {}
288289

@@ -327,9 +328,9 @@ function mysqli_get_connection_stats(mysqli $mysqli_link): array {}
327328

328329
function mysqli_get_client_stats(): array {}
329330

330-
function mysqli_get_charset(mysqli $mysqli_link): object|bool|null {}
331+
function mysqli_get_charset(mysqli $mysqli_link): object|null|bool {}
331332

332-
function mysqli_get_client_info(): string|null {}
333+
function mysqli_get_client_info(?mysqli $mysqli_link = null): string|null {}
333334

334335
function mysqli_get_client_version(): int {}
335336

@@ -339,23 +340,23 @@ function mysqli_get_host_info(mysqli $mysqli_link): string|bool {}
339340

340341
function mysqli_get_proto_info(mysqli $mysqli_link): int|bool {}
341342

342-
function mysqli_get_server_info(mysqli $mysqli_link): string|bool|null {}
343+
function mysqli_get_server_info(mysqli $mysqli_link): string|null|bool {}
343344

344345
function mysqli_get_server_version(mysqli $mysqli_link): int|bool {}
345346

346-
function mysqli_get_warnings(mysqli $mysqli_link): mysqli_warning {}
347+
function mysqli_get_warnings(mysqli $mysqli_link): mysqli_warning|null|false {}
347348

348349
function mysqli_init(): mysqli {}
349350

350351
function mysqli_info(mysqli $mysqli_link): string|bool|null {}
351352

352353
function mysqli_insert_id(mysqli $mysqli_link): int|bool|string {}
353354

354-
function mysqli_kill(mysqli $mysqli_link, int $processid): bool {}
355+
function mysqli_kill(mysqli $mysqli_link, int $connection_id): bool|null {}
355356

356357
function mysqli_more_results(mysqli $mysqli_link): bool {}
357358

358-
function mysqli_multi_query(mysqli $mysqli_link, string $query): bool {}
359+
function mysqli_multi_query(mysqli $mysqli_link, string $query): bool|null {}
359360

360361
function mysqli_next_result(mysqli $mysqli_link): bool {}
361362

@@ -426,7 +427,7 @@ function mysqli_stmt_free_result(mysqli_stmt $mysql_stmt) {}
426427

427428
function mysqli_stmt_get_result(mysqli_stmt $mysql_stmt): mysqli_result|false {}
428429

429-
function mysqli_stmt_get_warnings(mysqli_stmt $mysql_stmt): mysqli_warning|bool {}
430+
function mysqli_stmt_get_warnings(mysqli_stmt $mysql_stmt): mysqli_warning|null|false {}
430431

431432
function mysqli_stmt_init(mysqli $mysql_link): mysqli_stmt|false {}
432433

ext/mysqli/mysqli_arginfo.h

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli___construct, 0, 0, 0)
1010
ZEND_END_ARG_INFO()
1111

1212
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_autocommit, 0, 0, 1)
13-
ZEND_ARG_TYPE_INFO(0, mode, _IS_BOOL, 1)
13+
ZEND_ARG_TYPE_INFO(0, mode, _IS_BOOL, 0)
1414
ZEND_END_ARG_INFO()
1515

1616
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_begin_transaction, 0, 0, 0)
17-
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 1)
18-
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
17+
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
18+
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
1919
ZEND_END_ARG_INFO()
2020

2121
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_change_user, 0, 0, 3)
@@ -51,12 +51,12 @@ ZEND_END_ARG_INFO()
5151

5252
#define arginfo_class_mysqli_init arginfo_class_mysqli_character_set_name
5353

54-
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_kill, 0, 0, 1)
55-
ZEND_ARG_TYPE_INFO(0, connection_id, IS_LONG, 1)
54+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_mysqli_kill, 0, 1, _IS_BOOL, 1)
55+
ZEND_ARG_TYPE_INFO(0, connection_id, IS_LONG, 0)
5656
ZEND_END_ARG_INFO()
5757

5858
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_multi_query, 0, 0, 1)
59-
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 1)
59+
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
6060
ZEND_END_ARG_INFO()
6161

6262
#define arginfo_class_mysqli_more_results arginfo_class_mysqli_character_set_name
@@ -73,7 +73,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_poll, 0, 0, 4)
7373
ZEND_ARG_TYPE_INFO(0, usec, IS_LONG, 1)
7474
ZEND_END_ARG_INFO()
7575

76-
#define arginfo_class_mysqli_prepare arginfo_class_mysqli_multi_query
76+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_prepare, 0, 0, 1)
77+
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 1)
78+
ZEND_END_ARG_INFO()
7779

7880
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_query, 0, 0, 1)
7981
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 1)
@@ -98,13 +100,16 @@ ZEND_END_ARG_INFO()
98100

99101
#define arginfo_class_mysqli_escape_string arginfo_class_mysqli_real_escape_string
100102

101-
#define arginfo_class_mysqli_real_query arginfo_class_mysqli_multi_query
103+
#define arginfo_class_mysqli_real_query arginfo_class_mysqli_prepare
102104

103105
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_release_savepoint, 0, 0, 1)
104106
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
105107
ZEND_END_ARG_INFO()
106108

107-
#define arginfo_class_mysqli_rollback arginfo_class_mysqli_begin_transaction
109+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_rollback, 0, 0, 0)
110+
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 1)
111+
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
112+
ZEND_END_ARG_INFO()
108113

109114
#define arginfo_class_mysqli_savepoint arginfo_class_mysqli_release_savepoint
110115

@@ -240,9 +245,7 @@ ZEND_END_ARG_INFO()
240245

241246
#define arginfo_class_mysqli_stmt_reset arginfo_class_mysqli_character_set_name
242247

243-
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_prepare, 0, 0, 1)
244-
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
245-
ZEND_END_ARG_INFO()
248+
#define arginfo_class_mysqli_stmt_prepare arginfo_class_mysqli_multi_query
246249

247250
#define arginfo_class_mysqli_stmt_store_result arginfo_class_mysqli_character_set_name
248251

@@ -252,12 +255,12 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_affected_rows, 0, 1, MAY_
252255
ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
253256
ZEND_END_ARG_INFO()
254257

255-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_autocommit, 0, 2, _IS_BOOL, 0)
258+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_autocommit, 0, 2, _IS_BOOL, 1)
256259
ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
257260
ZEND_ARG_TYPE_INFO(0, mode, _IS_BOOL, 0)
258261
ZEND_END_ARG_INFO()
259262

260-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_begin_transaction, 0, 1, _IS_BOOL, 0)
263+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_begin_transaction, 0, 1, _IS_BOOL, 1)
261264
ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
262265
ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
263266
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
@@ -270,11 +273,11 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_change_user, 0, 4, _IS_BO
270273
ZEND_ARG_TYPE_INFO(0, database, IS_STRING, 1)
271274
ZEND_END_ARG_INFO()
272275

273-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_character_set_name, 0, 1, MAY_BE_STRING|MAY_BE_BOOL|MAY_BE_NULL)
276+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_character_set_name, 0, 1, MAY_BE_STRING|MAY_BE_NULL|MAY_BE_BOOL)
274277
ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
275278
ZEND_END_ARG_INFO()
276279

277-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_close, 0, 1, _IS_BOOL, 0)
280+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_close, 0, 1, _IS_BOOL, 1)
278281
ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
279282
ZEND_END_ARG_INFO()
280283

@@ -387,11 +390,13 @@ ZEND_END_ARG_INFO()
387390
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_get_client_stats, 0, 0, IS_ARRAY, 0)
388391
ZEND_END_ARG_INFO()
389392

390-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_get_charset, 0, 1, MAY_BE_OBJECT|MAY_BE_BOOL|MAY_BE_NULL)
393+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_get_charset, 0, 1, MAY_BE_OBJECT|MAY_BE_NULL|MAY_BE_BOOL)
391394
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
392395
ZEND_END_ARG_INFO()
393396

394-
#define arginfo_mysqli_get_client_info arginfo_mysqli_connect_error
397+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_get_client_info, 0, 0, IS_STRING, 1)
398+
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 1)
399+
ZEND_END_ARG_INFO()
395400

396401
#define arginfo_mysqli_get_client_version arginfo_mysqli_connect_errno
397402

@@ -403,35 +408,37 @@ ZEND_END_ARG_INFO()
403408

404409
#define arginfo_mysqli_get_proto_info arginfo_mysqli_field_count
405410

406-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_get_server_info, 0, 1, MAY_BE_STRING|MAY_BE_BOOL|MAY_BE_NULL)
411+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_get_server_info, 0, 1, MAY_BE_STRING|MAY_BE_NULL|MAY_BE_BOOL)
407412
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
408413
ZEND_END_ARG_INFO()
409414

410415
#define arginfo_mysqli_get_server_version arginfo_mysqli_field_count
411416

412-
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_mysqli_get_warnings, 0, 1, mysqli_warning, 0)
417+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_mysqli_get_warnings, 0, 1, mysqli_warning, MAY_BE_NULL|MAY_BE_FALSE)
413418
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
414419
ZEND_END_ARG_INFO()
415420

416421
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_mysqli_init, 0, 0, mysqli, 0)
417422
ZEND_END_ARG_INFO()
418423

419-
#define arginfo_mysqli_info arginfo_mysqli_get_server_info
424+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_info, 0, 1, MAY_BE_STRING|MAY_BE_BOOL|MAY_BE_NULL)
425+
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
426+
ZEND_END_ARG_INFO()
420427

421428
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_insert_id, 0, 1, MAY_BE_LONG|MAY_BE_BOOL|MAY_BE_STRING)
422429
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
423430
ZEND_END_ARG_INFO()
424431

425-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_kill, 0, 2, _IS_BOOL, 0)
432+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_kill, 0, 2, _IS_BOOL, 1)
426433
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
427-
ZEND_ARG_TYPE_INFO(0, processid, IS_LONG, 0)
434+
ZEND_ARG_TYPE_INFO(0, connection_id, IS_LONG, 0)
428435
ZEND_END_ARG_INFO()
429436

430437
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_more_results, 0, 1, _IS_BOOL, 0)
431438
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
432439
ZEND_END_ARG_INFO()
433440

434-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_multi_query, 0, 2, _IS_BOOL, 0)
441+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_multi_query, 0, 2, _IS_BOOL, 1)
435442
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
436443
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
437444
ZEND_END_ARG_INFO()
@@ -492,7 +499,10 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_real_escape_string, 0, 2,
492499
ZEND_ARG_TYPE_INFO(0, escapestr, IS_STRING, 0)
493500
ZEND_END_ARG_INFO()
494501

495-
#define arginfo_mysqli_real_query arginfo_mysqli_multi_query
502+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_real_query, 0, 2, _IS_BOOL, 0)
503+
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
504+
ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
505+
ZEND_END_ARG_INFO()
496506

497507
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_mysqli_reap_async_query, 0, 1, mysqli_result, MAY_BE_BOOL)
498508
ZEND_ARG_OBJ_INFO(0, mysqli_link, mysqli, 0)
@@ -578,7 +588,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_mysqli_stmt_get_result, 0, 1
578588
ZEND_ARG_OBJ_INFO(0, mysql_stmt, mysqli_stmt, 0)
579589
ZEND_END_ARG_INFO()
580590

581-
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_mysqli_stmt_get_warnings, 0, 1, mysqli_warning, MAY_BE_BOOL)
591+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_mysqli_stmt_get_warnings, 0, 1, mysqli_warning, MAY_BE_NULL|MAY_BE_FALSE)
582592
ZEND_ARG_OBJ_INFO(0, mysql_stmt, mysqli_stmt, 0)
583593
ZEND_END_ARG_INFO()
584594

0 commit comments

Comments
 (0)