setupConverter(); } protected function setupConverter() { if ($this->hasHeaderRow) { // если у файла есть заголовок, то в результате имеем ассоциативный массив $this->converter_conf['hasKey'] = 1; } $converter = ObjectCreator::build( $this->converter_conf ); if ( $converter instanceof ConverterInterface ) { $this->converter = $converter; } } public abstract function read(); /** * @param $arr * @return mixed * преобразовует значения прочитанного массива в нужные типы, согласно конфигурации конвертера */ protected function convert( $arr ) { if ($this->converter !== NULL) { $arr = $this->converter->convertByConfiguration( $arr, $this->converter_conf ); } return $arr; } }