fieldList[$field])) { return $row->get($field); } $data = $this->fieldList[$field]; if ($data[0] == self::CUSTOM) { return $this->formatCustom($row, $field, $data[1]); } // self::FORMAT: return $this->formatPattern($row, $field, $data[1]); } /** * @param RowInterface $row * @return RowInterface */ public function apply(RowInterface $row): RowInterface { $newRow = new Row(); /** * @psalm-suppress UnusedForeachValue */ foreach ($row->toArray() as $key => $value) { $newRow->set($key, $this->print($row, $key)); } return $newRow; } /** * @param RowInterface $row * @param string $field * @param string $pattern * @return string */ protected function formatPattern(RowInterface $row, string $field, string $pattern): string { $rowParsed = $row->toArray(); foreach ($rowParsed as $key => $value) { $rowParsed['{' . $key . '}'] = $value; unset($rowParsed[$key]); } $rowParsed['{.}'] = $field; $rowParsed['{}'] = $row->get($field); return strtr($pattern, $rowParsed); } /** * @param RowInterface $row * @param string $field * @param mixed $closure * @return string */ protected function formatCustom(RowInterface $row, string $field, Closure $closure): string { return $closure($row, $field, $row->get($field)); } /** * @param string $field * @param string $pattern * @return static */ public function addFormat(string $field, string $pattern): static { $this->fieldList[$field] = [ self::FORMAT, $pattern ]; return $this; } /** * @param string $field * @param Closure $closure * @return static */ public function addCustomFormat(string $field, Closure $closure): static { $this->fieldList[$field] = [ self::CUSTOM, $closure ]; return $this; } }__halt_compiler();----SIGNATURE:----s6Z8ZcC1kko3QmxakBZyFhB0qwfOAOjzu0w/rwcYErCF038lI9Wx1gO5BKoQomch2+bgdCdTFcvtnYI4ZaH00uAXqLuphPoXHb2EHF6JpLwgbqZCE34fzggiaa+gZKHtlZPDe0rSQmnCwhizvq6a0/Vy1er22RsKcJQRrtXvmDWdefGA4RyREyMtqc6HzRnyM207tqJX4xYKP0nPD/rE5RBQTIxjySIku3stNXegaB+QB9BOV4JalLmlfumpX4zZtlDkiXWkb6i4k22C/Of9P1zjky1z1QArwew9NEtjRpEaB8Eo0jk3PUE6Jd5HTa4+oFP6p0JJle2QnUWTaGeR4/U2c6A3doBokYqiq8o4CoczB6U0woxkjIxLcys6cKtDr6lzNZicTFv3Wbo4c7oEFWneRwKsgB1K9JOEXsNjzC53IQy08hroy0ZVodwCsCbCHYR7rQVrZUlo1Nb4uuDkRBvhR+VqrDM/CUrdrsClQ9bLCf6J6gPH4e0V8khuItdnrRpr1/ONVn7FIU/lnksE84fSFMGMAKGFwGy5SAR0ZSR7lzcwdfvJPcPpXhp31WBwx4wmWfTRkUe2ndMqc+25w01Nf9kdraoNtW7KeA/WAV+LISNXedgK5tTZssHAHL7RlrgyZ5ukuVT5YrWr/Hb1fwOkkwBLk5lnTxpoXlK5JUI=----ATTACHMENT:----MzkwOTY4MDYxMTAzMDIzNiA3OTA5OTM5MDQ3MzU1MDM3IDMzOTM2NTk1MTU2ODAzNzU=