Skip to content

Commit

Permalink
feat: add deprecation error handling for session.sid_length and sessi…
Browse files Browse the repository at this point in the history
…on.sid_bits_per_character
  • Loading branch information
kenjis committed Aug 22, 2024
1 parent 7e58971 commit 8b034b8
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions system/Debug/Exceptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,10 @@ public function exceptionHandler(Throwable $exception)
public function errorHandler(int $severity, string $message, ?string $file = null, ?int $line = null)
{
if ($this->isDeprecationError($severity)) {
if ($this->isSessionSidDeprecationError($message, $file, $line)) {
return true;
}

if (! $this->config->logDeprecations || (bool) env('CODEIGNITER_SCREAM_DEPRECATIONS')) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
Expand All @@ -223,6 +227,32 @@ public function errorHandler(int $severity, string $message, ?string $file = nul
return false; // return false to propagate the error to PHP standard error handler
}

/**
* Handles session.sid_length and session.sid_bits_per_character deprecations
* in PHP 8.4.
*/
private function isSessionSidDeprecationError(string $message, ?string $file = null, ?int $line = null): bool
{
if (
PHP_VERSION_ID >= 80400
&& str_contains($message, 'session.sid_')
) {
log_message(
LogLevel::WARNING,
'[DEPRECATED] {message} in {errFile} on line {errLine}.',
[
'message' => $message,
'errFile' => clean_path($file ?? ''),
'errLine' => $line ?? 0,
]
);

return true;
}

return false;
}

/**
* Checks to see if any errors have happened during shutdown that
* need to be caught and handle them.
Expand Down

0 comments on commit 8b034b8

Please sign in to comment.