setLogger($logger) ->setFolder($folder); } protected LoggerInterface $logger; protected string $folder; public function getLogger(): LoggerInterface { return $this->logger; } public function getFolder(): string { return $this->folder; } public function setLogger(LoggerInterface $logger): Logs { $this->logger = $logger; return $this; } public function setFolder(string $folder): Logs { $this->folder = $folder; return $this; } public function getFiles(): array { $files = new \FilesystemIterator($this->getFolder()); $output = []; foreach ($files as $file) { if ($file->isDir()) { continue; } $output []= $file; } return $output; } public function get(string $log_file): File { $filename = implode(DIRECTORY_SEPARATOR, [$this->getFolder(), $log_file]); $file_info = new SplFileInfo($filename); $content = \Safe\file_get_contents($filename); return (new File()) ->setLogger($this->getLogger()) ->setFilename($log_file) ->setDate((new DateTimeImmutable())->setTimestamp($file_info->getCTime())) ->setContent($content); } }