Skip to content

Commit 217ea73

Browse files
cmb69kocsismate
andauthored
Use php_error_docref() instead of zend_error() in session.c (GH-15505)
Using `php_error_docref()` is preferable since it outputs additional details (which function has been called and whether it is a startup or shutdown error), uses HTML markup, and also provides a link to the documentation, if configured. Since these deprecation warnings have been introduced recently[1][2], i.e. for PHP 8.4, there are no BC concerns. [1] <e8ff7c7> [2] <b36eac9> Co-authored-by: Máté Kocsis <[email protected]>
1 parent 5dd0575 commit 217ea73

24 files changed

+45
-45
lines changed

ext/session/session.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ static PHP_INI_MH(OnUpdateSidLength) /* {{{ */
752752
SESSION_CHECK_OUTPUT_STATE;
753753
val = ZEND_STRTOL(ZSTR_VAL(new_value), &endptr, 10);
754754
if (val != 32) {
755-
zend_error(E_DEPRECATED, "session.sid_length INI setting is deprecated");
755+
php_error_docref("session.configuration", E_DEPRECATED, "session.sid_length INI setting is deprecated");
756756
}
757757
if (endptr && (*endptr == '\0')
758758
&& val >= 22 && val <= PS_MAX_SID_LENGTH) {
@@ -775,7 +775,7 @@ static PHP_INI_MH(OnUpdateSidBits) /* {{{ */
775775
SESSION_CHECK_OUTPUT_STATE;
776776
val = ZEND_STRTOL(ZSTR_VAL(new_value), &endptr, 10);
777777
if (val != 4) {
778-
zend_error(E_DEPRECATED, "session.sid_bits_per_character INI setting is deprecated");
778+
php_error_docref("session.configuration", E_DEPRECATED, "session.sid_bits_per_character INI setting is deprecated");
779779
}
780780
if (endptr && (*endptr == '\0')
781781
&& val >= 4 && val <=6) {
@@ -2185,7 +2185,7 @@ PHP_FUNCTION(session_set_save_handler)
21852185
RETURN_TRUE;
21862186
}
21872187

2188-
zend_error(E_DEPRECATED, "Calling session_set_save_handler() with more than 2 arguments is deprecated");
2188+
php_error_docref(NULL, E_DEPRECATED, "Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated");
21892189
if (UNEXPECTED(EG(exception))) {
21902190
RETURN_THROWS();
21912191
}

ext/session/tests/bug68063.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ var_dump(session_start());
2222
var_dump(session_id());
2323
?>
2424
--EXPECTF--
25-
Deprecated: session.sid_length INI setting is deprecated in Unknown on line 0
25+
Deprecated: PHP Startup: session.sid_length INI setting is deprecated in Unknown on line 0
2626
bool(true)
2727
string(40) "%s"

ext/session/tests/session_id_basic2.phpt

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ echo "Done";
2929
--EXPECTF--
3030
*** Testing session_id() : basic functionality ***
3131

32-
Deprecated: session.sid_bits_per_character INI setting is deprecated in %s on line %d
32+
Deprecated: ini_set(): session.sid_bits_per_character INI setting is deprecated in %s on line %d
3333

34-
Deprecated: session.sid_length INI setting is deprecated in %s on line %d
34+
Deprecated: ini_set(): session.sid_length INI setting is deprecated in %s on line %d
3535
string(120) "%s"
3636

37-
Deprecated: session.sid_length INI setting is deprecated in %s on line %d
37+
Deprecated: ini_set(): session.sid_length INI setting is deprecated in %s on line %d
3838
string(22) "%s"
3939
Done

ext/session/tests/user_session_module/bug31454.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ try {
2121
echo "Done\n";
2222
?>
2323
--EXPECTF--
24-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
24+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
2525
session_set_save_handler(): Argument #1 ($open) must be a valid callback, first array member is not a valid class name or object
2626
Done

ext/session/tests/user_session_module/bug60634_error_3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ session_start();
4242

4343
?>
4444
--EXPECTF--
45-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
45+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
4646
write: goodbye cruel world
4747

4848
Fatal error: Uncaught Error: Call to undefined function undefined_function() in %s:%d

ext/session/tests/user_session_module/bug60634_error_4.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ session_start();
3737

3838
?>
3939
--EXPECTF--
40-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
40+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
4141
write: goodbye cruel world
4242

4343
Fatal error: Uncaught Exception in %s

ext/session/tests/user_session_module/bug80889a.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ $setHandler = ini_get('session.save_handler');
3131
var_dump($initHandler, $setHandler);
3232
?>
3333
--EXPECTF--
34-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
34+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3535

3636
Warning: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in %s on line %d
3737
string(8) "whatever"

ext/session/tests/user_session_module/gh7787.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Warning: session_write_close(): Failed to write session data using user defined
8282

8383
Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: %S, handler: MySessionHandler::updateTimestamp) in %s on line %d
8484

85-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
85+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
8686

8787
Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: %S, handler: write) in %s on line %d
8888

ext/session/tests/user_session_module/session_set_save_handler_basic.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ bool(false)
7575
Warning: session_module_name(): Session handler module "foo" cannot be found in %s on line %d
7676
bool(false)
7777

78-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
78+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7979
Open [%s,PHPSESSID]
8080
Read [%s,%s]
8181
array(3) {
@@ -98,7 +98,7 @@ array(3) {
9898
}
9999
Starting session again..!
100100

101-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
101+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
102102
Open [%s,PHPSESSID]
103103
Read [%s,%s]
104104
array(3) {

ext/session/tests/user_session_module/session_set_save_handler_class_002.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ session_unset();
8787
--EXPECTF--
8888
*** Testing session_set_save_handler() : full handler implementation ***
8989

90-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
90+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
9191
string(%d) "%s"
9292
string(4) "user"
9393
array(1) {

ext/session/tests/user_session_module/session_set_save_handler_closures.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ bool(false)
6262
Warning: session_module_name(): Session handler module "foo" cannot be found in %s on line %d
6363
bool(false)
6464

65-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
65+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6666
Open [%s,PHPSESSID]
6767
Read [%s,%s]
6868
array(3) {
@@ -85,7 +85,7 @@ array(3) {
8585
}
8686
Starting session again..!
8787

88-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
88+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
8989
Open [%s,PHPSESSID]
9090
Read [%s,%s]
9191
array(4) {

ext/session/tests/user_session_module/session_set_save_handler_error3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ ob_end_flush();
2929
--EXPECTF--
3030
*** Testing session_set_save_handler() : error functionality ***
3131

32-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
32+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3333

3434
Fatal error: Uncaught Exception: Do something bad..! in %s:%d
3535
Stack trace:

ext/session/tests/user_session_module/session_set_save_handler_error4.phpt

+7-7
Original file line numberDiff line numberDiff line change
@@ -55,24 +55,24 @@ ob_end_flush();
5555
--EXPECTF--
5656
*** Testing session_set_save_handler() : error functionality ***
5757

58-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
58+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
5959

60-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
60+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6161
session_set_save_handler(): Argument #2 ($close) must be a valid callback, function "echo" not found or invalid function name
6262

63-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
63+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6464
session_set_save_handler(): Argument #3 ($read) must be a valid callback, function "echo" not found or invalid function name
6565

66-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
66+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6767
session_set_save_handler(): Argument #4 ($write) must be a valid callback, function "echo" not found or invalid function name
6868

69-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
69+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7070
session_set_save_handler(): Argument #5 ($destroy) must be a valid callback, function "echo" not found or invalid function name
7171

72-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
72+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7373
session_set_save_handler(): Argument #6 ($gc) must be a valid callback, function "echo" not found or invalid function name
7474

75-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
75+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7676

7777
Warning: session_start(): Failed to read session data: user (%s) in %s on line %d
7878
bool(false)

ext/session/tests/user_session_module/session_set_save_handler_iface_001.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ session_unset();
8383
--EXPECTF--
8484
*** Testing session_set_save_handler() function: interface ***
8585

86-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
86+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
8787
string(%d) "%s"
8888
string(4) "user"
8989
array(1) {

ext/session/tests/user_session_module/session_set_save_handler_iface_002.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ session_start();
8181
--EXPECTF--
8282
*** Testing session_set_save_handler() function: interface wrong ***
8383

84-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
84+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
8585
bool(true)
8686
session_set_save_handler(): Argument #1 ($open) must be of type SessionHandlerInterface, MySession2 given
8787
good handler writing

ext/session/tests/user_session_module/session_set_save_handler_multiple.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ session_write_close();
7373
ob_end_flush();
7474
?>
7575
--EXPECTF--
76-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
76+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7777
Open
7878
Create SID OLD
7979
Read
8080
Write
8181
Close
8282
New handlers:
8383

84-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
84+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
8585
Open
8686
Validate ID
8787
Read

ext/session/tests/user_session_module/session_set_save_handler_sid_001.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ var_dump($_SESSION);
7373
--EXPECTF--
7474
*** Testing session_set_save_handler() function: create_sid ***
7575

76-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
76+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7777
string(32) "session_set_save_handler_sid_001"
7878
string(4) "user"
7979
array(1) {

ext/session/tests/user_session_module/session_set_save_handler_type_error.phpt

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,19 +43,19 @@ ob_end_flush();
4343

4444
?>
4545
--EXPECTF--
46-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
46+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
4747
Session callback must have a return value of type bool, array returned
4848

49-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
49+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
5050

5151
Deprecated: session_start(): Session callback must have a return value of type bool, int returned in %s on line %d
5252

5353
Warning: session_start(): Failed to read session data: user (%s) in %s on line %d
5454

55-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
55+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
5656
Session callback must have a return value of type bool, array returned
5757

58-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
58+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
5959

6060
Deprecated: session_start(): Session callback must have a return value of type bool, int returned in %s on line %d
6161

ext/session/tests/user_session_module/session_set_save_handler_type_error2.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ ob_end_flush();
2828

2929
?>
3030
--EXPECTF--
31-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
31+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3232
Session callback must have a return value of type bool, null returned
3333

34-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
34+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3535
Session callback must have a return value of type bool, int returned

ext/session/tests/user_session_module/session_set_save_handler_variation2.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ rmdir($path);
2828
*** Testing session_set_save_handler() : variation ***
2929
bool(true)
3030

31-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
31+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3232

3333
Warning: session_set_save_handler(): Session save handler cannot be changed when a session is active in %s on line %d
3434
bool(false)

ext/session/tests/user_session_module/session_set_save_handler_variation3.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ int(2)
3131

3232
Warning: session_save_path(): Session save path cannot be changed when a session is active in %s on line %d
3333

34-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
34+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
3535

3636
Warning: session_set_save_handler(): Session save handler cannot be changed when a session is active in %s on line %d
3737
bool(false)

ext/session/tests/user_session_module/session_set_save_handler_variation4.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ rmdir($path);
5151
--EXPECTF--
5252
*** Testing session_set_save_handler() : variation ***
5353

54-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
54+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
5555
Open [%s,PHPSESSID]
5656
Read [%s,%s]
5757
GC [0]
@@ -68,7 +68,7 @@ Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;]
6868
Close [%s,PHPSESSID]
6969
bool(true)
7070

71-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
71+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7272
Open [%s,PHPSESSID]
7373
Read [%s,%s]
7474
GC [0]

ext/session/tests/user_session_module/session_set_save_handler_variation5.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ rmdir($path);
5959
string(0) ""
6060
*** Without lazy_write ***
6161

62-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
62+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6363
bool(true)
6464
Open [%s,PHPSESSID]
6565
CreateID [PHPT-%d]
@@ -75,7 +75,7 @@ string(%d) "PHPT-%d"
7575
*** With lazy_write ***
7676
string(%d) "PHPT-%d"
7777

78-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
78+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
7979
bool(true)
8080
Open [%s,PHPSESSID]
8181
ValidateID [%s,PHPT-%d]

ext/session/tests/user_session_module/session_set_save_handler_variation6.phpt

+3-3
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ rmdir($path);
6363
--EXPECTF--
6464
*** Testing session_set_save_handler() : test write short circuit ***
6565

66-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
66+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
6767
Open [%s,PHPSESSID]
6868
CreateID [PHPT-%s]
6969
Read [%s,%s]
@@ -87,7 +87,7 @@ array(3) {
8787
}
8888
Starting session again..!
8989

90-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
90+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
9191
Open [%s,PHPSESSID]
9292
Read [%s,%s]
9393
array(3) {
@@ -102,7 +102,7 @@ Write [%s,%s,Blah|s:12:"Hello World!";Foo|b:0;Guff|i:1234567890;Bar|s:3:"Foo";]
102102
Close [%s,PHPSESSID]
103103
Starting session again..!
104104

105-
Deprecated: Calling session_set_save_handler() with more than 2 arguments is deprecated in %s on line %d
105+
Deprecated: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in %s on line %d
106106
Open [%s,PHPSESSID]
107107
Read [%s,%s]
108108
array(4) {

0 commit comments

Comments
 (0)