Skip to content

Commit 134441e

Browse files
committedJul 18, 2023
Deprecate calling dba_fetch() with $dba at the 3rd parameter
1 parent 9c7c0a0 commit 134441e

File tree

4 files changed

+32
-14
lines changed

4 files changed

+32
-14
lines changed
 

‎ext/dba/dba.c

+5
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,11 @@ PHP_FUNCTION(dba_fetch)
966966
Z_PARAM_LONG(skip)
967967
Z_PARAM_RESOURCE(id);
968968
ZEND_PARSE_PARAMETERS_END_EX(goto standard;);
969+
970+
zend_error(E_DEPRECATED, "Calling dba_fetch() with $dba at the 3rd parameter is deprecated");
971+
if (UNEXPECTED(EG(exception))) {
972+
RETURN_THROWS();
973+
}
969974
} else {
970975
standard:
971976
ZEND_PARSE_PARAMETERS_START(2, 3)

‎ext/dba/tests/bug70825.phpt

+12-12
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,39 @@ $db = dba_open($filename, 'n', 'inifile');
1414
dba_insert('foo', 23, $db);
1515
dba_insert('foo', 42, $db);
1616
dba_insert('foo', 1337, $db);
17-
var_dump(dba_fetch('foo', -1, $db));
18-
var_dump(dba_fetch('foo', -1, $db));
19-
var_dump(dba_fetch('foo', -1, $db));
17+
var_dump(dba_fetch('foo', $db, -1));
18+
var_dump(dba_fetch('foo', $db, -1));
19+
var_dump(dba_fetch('foo', $db, -1));
2020
dba_close($db);
2121
unlink($filename);
2222

2323
$db = dba_open($filename, 'n', 'inifile');
2424
dba_insert(['foo', 'bar'], 23, $db);
2525
dba_insert(['foo', 'bar'], 42, $db);
2626
dba_insert(['foo', 'bar'], 1337, $db);
27-
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
28-
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
29-
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
27+
var_dump(dba_fetch(['foo', 'bar'], $db, -1));
28+
var_dump(dba_fetch(['foo', 'bar'], $db, -1));
29+
var_dump(dba_fetch(['foo', 'bar'], $db, -1));
3030
dba_close($db);
3131
unlink($filename);
3232

3333
$db = dba_open($filename, 'n', 'inifile');
3434
dba_insert('[foo]bar', 23, $db);
3535
dba_insert('[foo]bar', 42, $db);
3636
dba_insert('[foo]bar', 1337, $db);
37-
var_dump(dba_fetch('[foo]bar', -1, $db));
38-
var_dump(dba_fetch('[foo]bar', -1, $db));
39-
var_dump(dba_fetch('[foo]bar', -1, $db));
37+
var_dump(dba_fetch('[foo]bar', $db, -1));
38+
var_dump(dba_fetch('[foo]bar', $db, -1));
39+
var_dump(dba_fetch('[foo]bar', $db, -1));
4040
dba_close($db);
4141
unlink($filename);
4242

4343
$db = dba_open($filename, 'n', 'inifile');
4444
dba_insert('[foo]bar', 23, $db);
4545
dba_insert('[foo]bar', 42, $db);
4646
dba_insert('[foo]bar', 1337, $db);
47-
var_dump(dba_fetch('[foo]bar', 0, $db));
48-
var_dump(dba_fetch('[foo]bar', 1, $db));
49-
var_dump(dba_fetch('[foo]bar', 2, $db));
47+
var_dump(dba_fetch('[foo]bar', $db, 0));
48+
var_dump(dba_fetch('[foo]bar', $db, 1));
49+
var_dump(dba_fetch('[foo]bar', $db, 2));
5050
dba_close($db);
5151
unlink($filename);
5252
?>

‎ext/dba/tests/dba_cdb_read.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ test.cdb
5151
echo "\n=";
5252
for ($i=0; $i < strlen($keys); $i++) {
5353
$key = substr($keys, $i, 1);
54-
echo dba_fetch($key, $skip[$key], $db_file);
54+
echo dba_fetch($key, $db_file, $skip[$key]);
5555
$skip[$key]++;
5656
}
5757
dba_close($db_file);

‎ext/dba/tests/dba_fetch_legacy_signature.phpt

+14-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,17 @@ $name = 'legacy_fetch_signature.db';
1515
$db = get_any_db($name);
1616

1717
dba_insert("key1", "This is a test insert", $db);
18-
echo dba_fetch("key1", 0, $db), \PHP_EOL, dba_fetch("key1", $db, 0);
18+
echo dba_fetch("key1", 0, $db), \PHP_EOL, dba_fetch("key1", $db, 0), \PHP_EOL;
19+
20+
set_error_handler(function ($severity, $message, $file, $line) {
21+
throw new Exception($message);
22+
});
23+
24+
try {
25+
dba_fetch("key1", 0, $db);
26+
} catch (Exception $e) {
27+
echo $e->getMessage() . "\n";
28+
}
1929
dba_close($db);
2030

2131
?>
@@ -27,5 +37,8 @@ cleanup_standard_db($db_name);
2737
?>
2838
--EXPECTF--
2939
Using handler: "%s"
40+
41+
Deprecated: Calling dba_fetch() with $dba at the 3rd parameter is deprecated in %s on line %d
3042
This is a test insert
3143
This is a test insert
44+
Calling dba_fetch() with $dba at the 3rd parameter is deprecated

0 commit comments

Comments
 (0)