public static function mapData($table, $data)
 {
     $map = self::chooseMap($table);
     if ($map) {
         $columns = self::getColumns($map['tables'][$table], 'drop_columns');
         $data = ArrayOperator::dropColumns($data, $columns);
         $columns = self::getColumns($map['tables'][$table], 'rename_columns');
         $data = ArrayOperator::renameColumns($data, $columns);
     }
     return $data;
 }
 protected function replaceFillable(&$stub, $fillable)
 {
     $fillable = ArrayOperator::exportArrayAsString($fillable);
     $stub = str_replace('{{fillable}}', $fillable, $stub);
     return $this;
 }
 public function preEntryMap($data, $source_table, $dest_table, $map)
 {
     if (isset($map['tables'][$source_table]['drop_columns'])) {
         $drop_columns = $map['tables'][$source_table]['drop_columns'];
         $data = ArrayOperator::dropColumns($data, $drop_columns);
     }
     if (isset($map['tables'][$source_table]['rename_columns'])) {
         $renameColumns = $map['tables'][$source_table]['rename_columns'];
         $arrayOperator = new ArrayOperator();
         $data = $arrayOperator->renameColumns($data, $renameColumns);
     }
     $data = $this->executePreFunction($data);
     $data = $this->modifyData($data, $source_table, $map);
     return $data;
 }
 protected function replaceFactory(&$stub, $factory)
 {
     $factory = ArrayOperator::exportObjectAsString($factory);
     $stub = str_replace('{{factory}}', $factory, $stub);
     return $this;
 }