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 Row $row * @return Row */ public function apply($row) { $newRow = new Row(); /** * @psalm-suppress UnusedForeachValue */ foreach ($row->toArray() as $key => $value) { $newRow->set($key, $this->print($row, $key)); } return $newRow; } /** * @param Row $row * @param string $field * @param string $pattern * @return string */ protected function formatPattern($row, $field, $pattern) { $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 Row $row * @param string $field * @param mixed $closure * @return string */ protected function formatCustom($row, $field, $closure) { return $closure($row, $field, $row->get($field)); } /** * @param string $field * @param string $pattern * @return RowOutput */ public function addFormat($field, $pattern) { $this->fieldList[$field] = [ self::FORMAT, $pattern ]; return $this; } /** * @param string $field * @param Closure $closure * @return RowOutput */ public function addCustomFormat($field, Closure $closure) { $this->fieldList[$field] = [ self::CUSTOM, $closure ]; return $this; } } __halt_compiler();----SIGNATURE:----c9UvUSknSnJNSMvD9DvXzxlr1Js6PUJnyXcap8zPogyUFVm2UKYDZ/JVX4LPskOmythK/yPfFndn06kp3rmDR2iXedT0P6OaZF4ABma7PX4+be826Lrimvjt4J8y9QKbRVx7A4vqtOzOUX7QiesSLt6yOtXArfbkcw9A3YCRyn6ioJdCUCYwNg/Y71EDgCBrKpfE7D6a95gsNzuAg38tuYryc0ttfVWXV5CR82E9eC3LTTXC5OX9HhPiSaj8v/nHiDLB7v0COlOyXCo2lojcOZTdr1VWM5WwVPk3CTq0rYBAGU1PtEk0TxFHBRI/ytH4tOVsAnKvfjYRZFOA4LF2s8O7qg5kpeUQzGZtDwRpFTTuKZnPaw2zN2ltPe/3P6AoAMcJictTJC1wyQJpqO28YkG1ZNozMXn0xg343VnPozpM7DMwtlkpXp+jB9Ky0eLHMRT2R2hwVRB3kbmjP6Etlyr7HapBkU7u6JP7AUDwzR6WSQep16uhgcDHW0k1bio0d2NSZZoAwCQEUg/5zmS9ciR6d2TsFrOvv7+P48ySmSaZkstqR3kIr60sIIB1oXuW1Fhz+V9VG/Ggl7s6QmDsrr1VfWLHvXxoCLvZ1wLExU/DWjBrG1T+a6At30B5TWIX/hsM7BY8nkw3SYFZwj7dSaolZvTxNSFyU8CgjboCGpU=----ATTACHMENT:----OTI5MDU4MTYyMDAwMzg1OSA0MzU3NTE4MTA1MjY0NTkgMzc4ODYzNDExMDc3MTcwMw==