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:----IHyZ2UsSxKQOFYeaDyZWb9Uw4ce9REbuII23LWKQzv5IfXQLJgKOWIrnuFm5zKApw4MroBtqWIsCPQER4lg/e0d/FSWgPZQb1wKucPJCNjWKe9PA8OW9Et6lema9Az6gN818CITsraJjjj7MItKUGzfKsBXnWqyp3pFjqVW+GXCwv+8q0roShowtxZOqN1/ZEGWnZG0Gnj9qikGXYn7wSvZNO9e2ViIVjmxtfEm7MNh0CB4vB8rA2yIk9RdKvx35/b/cJXydlD3FKsylDLBg/nm2XVxjB8v5lovSMzpUE/rhAGHeV4KrWJiYWYfJ7os+TTEsgIbVzJ0gTcB9E/AMkRpH5DE/k7moxmEOkCEeh9F5qKk7hz79wsL4c7jDxA3qdMleSSr2wxAr6+xKP00j49+I0vdI4AW0QX+rnmk4RZeaYfXONLHlcNkOEEgBH39yzH34a8hIhYt/Vmipf6/3AaNDPSzGTryjr/zpv7cWjZizKWQPSVKy+x2YCUqMGGvUDD+Yq34HsjIzXpWk0fUOf1ocPLWX27TrLcKFVJnXqhEhoBK/i8UowQZOyzCmG82J4WggOHxB+YbYRO85H8Kzhv97B/Tp8+SM337WrdHyFrxhlyOmUqOxw50p2ayKIn/yA6QyAvzKGF8kqNTLE4kaWaLvftW3Rg4YB4oSmfe6SLU=----ATTACHMENT:----NjMyMTY2NzI2NDYyNTc1OSA0NjY0MDc2NzUxNjk5NDgwIDk3NTcwMDI0NjA5ODI1MzU=