Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion phpstan.dist.neon
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ includes:
- utils/phpstan-baseline/loader.neon

parameters:
phpVersion: 80200
phpVersion:
min: 80200
max: 80599
tmpDir: build/phpstan
level: 6
bootstrapFiles:
Expand Down
19 changes: 6 additions & 13 deletions system/Session/Handlers/FileHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -300,27 +300,20 @@ public function gc($max_lifetime): false|int
}

/**
* Configure Session ID regular expression.
*
* To make life easier, we force the PHP defaults. Because PHP9 forces them.
* Configure Session ID regular expression. To make life easier, we force the PHP defaults because PHP 9 forces them.
*
* @see https://wiki.php.net/rfc/deprecations_php_8_4#sessionsid_length_and_sessionsid_bits_per_character
*
* @return void
*/
protected function configureSessionIDRegex()
{
$bitsPerCharacter = (int) ini_get('session.sid_bits_per_character');
$sidLength = (int) ini_get('session.sid_length');
if ((int) ini_get('session.sid_bits_per_character') !== 4) {
ini_set('session.sid_bits_per_character', '4');
}

// We force the PHP defaults.
if (PHP_VERSION_ID < 90000) {
if ($bitsPerCharacter !== 4) {
ini_set('session.sid_bits_per_character', '4');
}
if ($sidLength !== 32) {
ini_set('session.sid_length', '32');
}
if ((int) ini_get('session.sid_length') !== 32) {
ini_set('session.sid_length', '32');
}

$this->sessionIDRegex = '[0-9a-f]{32}';
Expand Down
20 changes: 7 additions & 13 deletions system/Session/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,26 +186,20 @@ protected function configure()
}

/**
* Configure session ID length.
* Configure session ID length. To make life easier, we force the PHP defaults because PHP 9 forces them.
*
* To make life easier, we force the PHP defaults. Because PHP9 forces them.
* See https://wiki.php.net/rfc/deprecations_php_8_4#sessionsid_length_and_sessionsid_bits_per_character
* @see https://wiki.php.net/rfc/deprecations_php_8_4#sessionsid_length_and_sessionsid_bits_per_character
*
* @return void
*/
protected function configureSidLength()
{
$bitsPerCharacter = (int) ini_get('session.sid_bits_per_character');
$sidLength = (int) ini_get('session.sid_length');
if ((int) ini_get('session.sid_bits_per_character') !== 4) {
ini_set('session.sid_bits_per_character', '4');
}

// We force the PHP defaults.
if (PHP_VERSION_ID < 90000) {
if ($bitsPerCharacter !== 4) {
ini_set('session.sid_bits_per_character', '4');
}
if ($sidLength !== 32) {
ini_set('session.sid_length', '32');
}
if ((int) ini_get('session.sid_length') !== 32) {
ini_set('session.sid_length', '32');
}

$this->sidRegexp = '[0-9a-f]{32}';
Expand Down
Loading