35 lines
929 B
PHP
35 lines
929 B
PHP
<?php
|
|
|
|
/**
|
|
* LoggerFactory for Logger Plugin.
|
|
*
|
|
* Responsible for auto-migration and creating the Log instance.
|
|
*/
|
|
class LoggerFactory
|
|
{
|
|
/**
|
|
* @param object $db Database connector instance.
|
|
* @return array [Log $logger, string $userIP]
|
|
*/
|
|
public static function create($db): array
|
|
{
|
|
// Auto-migration: ensure log table exists
|
|
$pdo = $db->getConnection();
|
|
$migrationFile = __DIR__ . '/../migrations/create_log_table.sql';
|
|
if (file_exists($migrationFile)) {
|
|
$sql = file_get_contents($migrationFile);
|
|
$pdo->exec($sql);
|
|
}
|
|
|
|
// Load models and core IP helper
|
|
require_once __DIR__ . '/Log.php';
|
|
require_once __DIR__ . '/../../../app/helpers/ip_helper.php';
|
|
|
|
// Instantiate logger and retrieve user IP
|
|
$logger = new \Log($db);
|
|
$userIP = getUserIP();
|
|
|
|
return [$logger, $userIP];
|
|
}
|
|
}
|