34 lines
815 B
PHP
34 lines
815 B
PHP
<?php
|
|
|
|
namespace App\Services\Database;
|
|
|
|
use App\Core\Request;
|
|
use PDO;
|
|
|
|
class ActivityLogger
|
|
{
|
|
private PDO $pdo;
|
|
private Request $request;
|
|
|
|
public function __construct(Connection $connection, Request $request)
|
|
{
|
|
$this->pdo = $connection->getPdo();
|
|
$this->request = $request;
|
|
}
|
|
|
|
/**
|
|
* Log user or system activity.
|
|
*/
|
|
public function log(?int $userId, string $action, ?string $description = null): void
|
|
{
|
|
$ip = $this->request->getIp();
|
|
$ua = $this->request->getUserAgent();
|
|
|
|
$sql = "INSERT INTO activity_logs (user_id, action, description, ip_address, user_agent)
|
|
VALUES (?, ?, ?, ?, ?)";
|
|
|
|
$stmt = $this->pdo->prepare($sql);
|
|
$stmt->execute([$userId, $action, $description, $ip, $ua]);
|
|
}
|
|
}
|