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:----BTCqn4V3AMJHqf+ZH+PRQvmxJwTsBGHx+SIckZBgDZuukyfIsZdVWIcKEgtg6YSbmtOay8h4OdzZg048iPm03vOJeNAlGNl0fOunXuO5vLHOHK+Lng5D6us8+M1REIKiGXOecSusdVYVaRoM4oDq5QWj+4ee8OQHgZZg067hASVWL4Gl1AiLrsJXt+5sXi3CTJfmbvH7rpIqgknimBAJUhttvELkug2IBSETwclcKUzrkyzVwF+wvXXupPsBZdDDPghBYyhs9DbH0gEtSGlIjNjT35VgoXEKcfhW1awJ1PUl6lSvKj9QZN0O0hbyWDM0wfaqerLTVPWodMEd0MSAg+9fT2ysB97L6DZwWGTt9hm5071kwbEMZMEBqGcHsUa/kYFrdzFDJRt6fZYs7UaVK6yrGmvHpY3Ew+roQD2NTvk+Jq3l4iVeaAggbXfSWFOqPzNhjEX4Kei36BAH4hRqVVm1clOvOI8xy6CCwU56aJXCW6ZIQrjar3Yje5gzJYAzslgR5aIaWQ0TglmfjP+ySkKzR5HrMkCWqQKP9U2m9GaMPlQQ35zRWfLGgtdqvM+q3Pf9x30uGm39/ohSCh0z1GhB8MpmQp2TpXJBhIV6JBOKGnCpSGTHAnRhZzikSTd/lMb+qguMNWvDusUT6ipVUzUvY6PrxGgpvP+pDgRfBCI=----ATTACHMENT:----OTM5NDU4ODc5NDAwNzIxIDg5ODA4MDI5MjcyNzMzNjYgNjY3NDI2MDQyMzg2NjAzMg==