Wire ProjectZomboidDetective with all 11 log classes

Constructor pre-registers every concrete ProjectZomboid Log subclass so
that detect() can dispatch on filename hint plus content signature.
Data-provider test verifies each of the eleven synthetic fixtures
resolves to its expected Log class via the public Detective surface.
This commit is contained in:
2026-04-30 20:43:51 +00:00
parent 27424f6a14
commit cca5208cc0
2 changed files with 91 additions and 1 deletions

View File

@@ -3,8 +3,36 @@
namespace IndifferentKetchup\Codex\Detective\ProjectZomboid;
use IndifferentKetchup\Codex\Detective\Detective;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidAdminLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidBurdJournalsLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidChatLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidClientActionLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidCmdLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidItemLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidMapLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidPerkLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidPvpLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidServerLog;
use IndifferentKetchup\Codex\Log\ProjectZomboid\ProjectZomboidUserLog;
/**
* Pre-registers all eleven ProjectZomboid log classes so that detect()
* can dispatch among them on filename hint + content signature.
*/
class ProjectZomboidDetective extends Detective
{
// TODO: implement game-specific log type detection
public function __construct()
{
$this->addPossibleLogClass(ProjectZomboidServerLog::class);
$this->addPossibleLogClass(ProjectZomboidChatLog::class);
$this->addPossibleLogClass(ProjectZomboidClientActionLog::class);
$this->addPossibleLogClass(ProjectZomboidCmdLog::class);
$this->addPossibleLogClass(ProjectZomboidItemLog::class);
$this->addPossibleLogClass(ProjectZomboidMapLog::class);
$this->addPossibleLogClass(ProjectZomboidPerkLog::class);
$this->addPossibleLogClass(ProjectZomboidPvpLog::class);
$this->addPossibleLogClass(ProjectZomboidAdminLog::class);
$this->addPossibleLogClass(ProjectZomboidUserLog::class);
$this->addPossibleLogClass(ProjectZomboidBurdJournalsLog::class);
}
}