1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-13 01:25:56 +00:00

enforce some stricter type checking for loggers

This commit is contained in:
Andrew Dolgov
2021-02-25 17:10:03 +03:00
parent dcf0135285
commit 34c74400a4
7 changed files with 19 additions and 18 deletions

View File

@@ -0,0 +1,4 @@
<?php
interface Logger_Adapter {
function log_error(int $errno, string $errstr, string $file, int $line, $context);
}

View File

@@ -1,17 +1,15 @@
<?php
class Logger_SQL {
class Logger_SQL implements Logger_Adapter {
private $pdo;
function log_error($errno, $errstr, $file, $line, $context) {
function log_error(int $errno, string $errstr, string $file, int $line, $context) {
// separate PDO connection object is used for logging
if (!$this->pdo) $this->pdo = Db::instance()->pdo_connect();
if ($this->pdo && get_schema_version() > 117) {
$owner_uid = $_SESSION["uid"] ?? null;
// limit context length, DOMDocument dumps entire XML in here sometimes, which may be huge
$context = mb_substr($context, 0, 8192);
@@ -37,7 +35,7 @@ class Logger_SQL {
$sth = $this->pdo->prepare("INSERT INTO ttrss_error_log
(errno, errstr, filename, lineno, context, owner_uid, created_at) VALUES
(?, ?, ?, ?, ?, ?, NOW())");
$sth->execute([$errno, $errstr, $file, $line, $context, $owner_uid]);
$sth->execute([$errno, $errstr, $file, $line, $context, $_SESSION["uid"] ?? null]);
return $sth->rowCount();
}

View File

@@ -1,7 +1,7 @@
<?php
class Logger_Stdout {
class Logger_Stdout implements Logger_Adapter {
function log_error($errno, $errstr, $file, $line, $context) {
function log_error(int $errno, string $errstr, string $file, int $line, $context) {
switch ($errno) {
case E_ERROR:

View File

@@ -1,7 +1,7 @@
<?php
class Logger_Syslog {
class Logger_Syslog implements Logger_Adapter {
function log_error($errno, $errstr, $file, $line, $context) {
function log_error(int $errno, string $errstr, string $file, int $line, $context) {
switch ($errno) {
case E_ERROR: