logEntryRepository = $logEntryRepository; $this->diffFinder = $diffFinder; } public function format(int $logEntryId): array { $logEntry = $this->logEntryRepository->getById($logEntryId); return array_map(function ($logDetail) { $diffString = $this->diffFinder->render( (string)$logDetail->getOldValue(), (string)$logDetail->getNewValue() ); return [ LogDetail::NAME => $logDetail->getName(), LogDetail::OLD_VALUE => $this->removeDiffTags($diffString, self::TAG_INS), LogDetail::NEW_VALUE => $this->removeDiffTags($diffString, self::TAB_DEL), ]; }, $logEntry->getLogDetails()); } private function removeDiffTags(string $text, string $tagName): string { return (string)preg_replace("/<$tagName>(.*?)<\/$tagName>/s", '', $text); } }