protected function normalizeColumns()
{
$formatters = $this->getFormatters();
foreach ($this->columns as $index => $column) {
// convert shorthand string and int configs to array
if (is_string($column)) {
$column = explode(':', $column);
} elseif (is_int($column)) {
$column = [$column];
}
// default to 'raw' formatter if none is specified
if (!isset($column[1])) {
$column[1] = 'raw';
}
// assign built-in formatters
if (!is_callable($column[1])) {
if (array_key_exists($column[1], $formatters)) {
$column[1] = $formatters[$column[1]];
} else {
throw new InvalidConfigException("Invalid formatter for column: {$column[0]}.");
}
}
$this->columns[$index] = $column;
}
}