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:----5M2ldjPzmqViUn85ZdhYyWGWoBlZ68RujKMl78atizqgI9JyA1lEnvI5eiO5Go3fxvRoyYMMfiDUnsf9MGFk2/XafD2o90e1TgBucOALzn4aLSDmgpbBeLntTxwVtNGsSWPhWd9SzRPDTmELJT9JPx6uFwWmRNe3nfb1K49+d7tKo8oIYjPyNNV+wM4AtR9Riwj/VBIqG0vlreXf+NPtXHKR9E6zBx2yHovD1v7u6hFKu/5Tl2lvXlCugRFJD4IbfWmSS97IL48VNBozvBS04MRJ6WsLBGkdijyBXp6eCmsGISoNq5OCbQ/saJai5XwGEKK+KA6gp4eJ2LqA5vH3vuzUhVHa7VC740N1f/s07i8DwgaZ9tNyXXaj6DUBJXCV/i46obxPgmoeoqG7+x2+Ft9ij8di1sCxbTMCIesFg0OPCXY18gv6ghh6TtrLAjiUOyD1cxokbViZSY4A0jqv9azB9lY4vzG8stOmb1/KM1C3sxsms3DuA4JFw/ccXJbyFcjp6J4f0nPAVnYXlp8vrb9jx8VnaLV8nGRm/ytaw+qRsHY6iKCm2s3vlw+0iXunqBSXMgNkNkCLNMEFQZ949Q25CZn0FdqXsw/MvhPwH/mKJjLqVQpP76R+t3RrYu2Jua/o5QntmNtUMC803GFSGXvC7jAVvkXGZTSGxG8l+pk=----ATTACHMENT:----MzYzOTgzNzI3MzYwMjI2MCAzMDA4ODA0NTk3NzIwMzAxIDI3Mjc2MjA0MzEyMzY0MjI=