private function getFieldNewName($field, $namesMap = null, $originalSource = null, $newSource = null) {
        $newName = null;
        if ($namesMap == null) {
            $namesMap = $this->getColumnNames();
        }
        //primero busca una entrada en el mapa para el nombre del campo indicado
        $newName = $this->fieldInMap($field, $namesMap);
        if (empty($newName) && $this->fieldInList($field, $namesMap)) {
            $newName = $field;
        }
        if (empty($newName)) {
            //si el field indicado comienza con nombre de tabla seguido de punto
            $fieldPos = strpos($field, "$originalSource.");
            if($fieldPos === 0) {
                $searchField = substr($field, strlen($originalSource)+1);
                $newName = $this->fieldInMap($searchField, $namesMap);
                if(!empty($newName) && !empty($newSource) && strpos($newName, '.') === false) {
                    $newName = "$newSource.$newName";
                }
            }
        }
        if (empty($newName)) {
            if (preg_match ( "/\w+\s*\(\s*(\w+)\s*\)/", $field, $matches)) {
                $newName = str_replace($matches[1], $this->getFieldNewName($matches[1]), $matches[0]);
            }
        }

        return empty($newName) ? null : $newName;
    }
private function getFieldNewName($field, $namesMap = null, $originalSource = null, $newSource = null) {
        $newName = null;
        if ($namesMap == null) {
            $namesMap = $this->getColumnNames();
        }
        //primero busca una entrada en el mapa para el nombre del campo indicado
        $newName = $this->fieldInMap($field, $namesMap);
        if (empty($newName) && $this->fieldInList($field, $namesMap)) {
            $newName = $field;
        }
        if (empty($newName)) {
            //si el field indicado comienza con nombre de tabla seguido de punto
            $fieldPos = strpos($field, "$originalSource.");
            if($fieldPos === 0) {
                $searchField = substr($field, strlen($originalSource)+1);
                $newName = $this->fieldInMap($searchField, $namesMap);
                if(!empty($newName) && !empty($newSource) && strpos($newName, '.') === false) {
                    $newName = "$newSource.$newName";
                }
            }
        }
        if (empty($newName)) {
            if (preg_match ( "/\w+\s*\(\s*(\w+)\s*\)/", $field, $matches)) {
                $newName = str_replace($matches[1], $this->getFieldNewName($matches[1]), $matches[0]);
            }
        }

        return empty($newName) ? null : $newName;
    }
private function getFieldNewName ( $ field , $ namesMap = null , $ originalSource = null , $ newSource = null ) { $ newName = null ; if ( $ namesMap == null ) { $ namesMap = $ this -> getColumnNames ( ) ; } //primero busca una entrada en el mapa para el nombre del campo indicado $ newName = $ this -> fieldInMap ( $ field , $ namesMap ) ; if ( empty ( $ newName ) && $ this -> fieldInList ( $ field , $ namesMap ) ) { $ newName = $ field ; } if ( empty ( $ newName ) ) { //si el field indicado comienza con nombre de tabla seguido de punto $ fieldPos = strpos ( $ field , "$originalSource." ) ; if ( $ fieldPos === 0 ) { $ searchField = substr ( $ field , strlen ( $ originalSource ) + 1 ) ; $ newName = $ this -> fieldInMap ( $ searchField , $ namesMap ) ; if ( ! empty ( $ newName ) && ! empty ( $ newSource ) && strpos ( $ newName , '.' ) === false ) { $ newName = "$newSource.$newName" ; } } } if ( empty ( $ newName ) ) { if ( preg_match ( "/\w+\s*\(\s*(\w+)\s*\)/" , $ field , $ matches ) ) { $ newName = str_replace ( $ matches [ 1 ] , $ this -> getFieldNewName ( $ matches [ 1 ] ) , $ matches [ 0 ] ) ; } } return empty ( $ newName ) ? null : $ newName ; }
Busca el posible remplazo de nombre
@param $field
@param $namesMap
@param mixed $originalSource
@param mixed $newSource
@return mixed|string
Busca el posible remplazo de nombre