generated from jric11/baseProject
24 lines
815 B
PHP
24 lines
815 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
final class Audit {
|
||
|
|
|
||
|
|
public static function record(PDO $db, int $user, string $event): void {
|
||
|
|
try {
|
||
|
|
self::insert($db, $user, $event);
|
||
|
|
} catch (Throwable $e) {
|
||
|
|
error_log('Audit write failed: ' . $e->getMessage());
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function required(PDO $db, int $user, string $event): void {
|
||
|
|
if (!$db->inTransaction())
|
||
|
|
throw new LogicException('Required audit writes need a transaction.');
|
||
|
|
self::insert($db, $user, $event);
|
||
|
|
}
|
||
|
|
|
||
|
|
public static function insert(PDO $db, int $user, string $event): void {
|
||
|
|
$stmt = $db->prepare('INSERT INTO journal(journal_origin,journal_ip,journal_entry) VALUES(?,?,?)');
|
||
|
|
$stmt->execute([(string) $user, $_SERVER['REMOTE_ADDR'] ?? '', $user . ' ' . $event]);
|
||
|
|
}
|
||
|
|
}
|