framework/db/Query.php
protected function cleanUpTableNames($tableNames)
    {
        $cleanedUpTableNames = [];
        foreach ($tableNames as $alias => $tableName) {
            if (is_string($tableName) && !is_string($alias)) {
                $pattern = <<<PATTERN
~
^
\s*
(
(?:['"`\[]|{{)
.*?
(?:['"`\]]|}})
|
\(.*?\)
|
.*?
)
(?:
(?:
    \s+
    (?:as)?
    \s*
)
(
   (?:['"`\[]|{{)
    .*?
    (?:['"`\]]|}})
    |
    .*?
)
)?
\s*
$
~iux
PATTERN;
                if (preg_match($pattern, $tableName, $matches)) {
                    if (isset($matches[2])) {
                        list(, $tableName, $alias) = $matches;
                    } else {
                        $tableName = $alias = $matches[1];
                    }
                }
            }


            if ($tableName instanceof Expression) {
                if (!is_string($alias)) {
                    throw new InvalidArgumentException('To use Expression in from() method, pass it in array format with alias.');
                }
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $tableName;
            } elseif ($tableName instanceof self) {
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $tableName;
            } else {
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $this->ensureNameQuoted($tableName);
            }
        }

        return $cleanedUpTableNames;
    }
protected function cleanUpTableNames($tableNames)
    {
        $cleanedUpTableNames = [];
        foreach ($tableNames as $alias => $tableName) {
            if (is_string($tableName) && !is_string($alias)) {
                $pattern = <<<PATTERN
~
^
\s*
(
(?:['"`\[]|{{)
.*?
(?:['"`\]]|}})
|
\(.*?\)
|
.*?
)
(?:
(?:
    \s+
    (?:as)?
    \s*
)
(
   (?:['"`\[]|{{)
    .*?
    (?:['"`\]]|}})
    |
    .*?
)
)?
\s*
$
~iux
PATTERN;
                if (preg_match($pattern, $tableName, $matches)) {
                    if (isset($matches[2])) {
                        list(, $tableName, $alias) = $matches;
                    } else {
                        $tableName = $alias = $matches[1];
                    }
                }
            }


            if ($tableName instanceof Expression) {
                if (!is_string($alias)) {
                    throw new InvalidArgumentException('To use Expression in from() method, pass it in array format with alias.');
                }
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $tableName;
            } elseif ($tableName instanceof self) {
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $tableName;
            } else {
                $cleanedUpTableNames[$this->ensureNameQuoted($alias)] = $this->ensureNameQuoted($tableName);
            }
        }

        return $cleanedUpTableNames;
    }
protected function cleanUpTableNames ( $ tableNames ) { $ cleanedUpTableNames = [ ] ; foreach ( $ tableNames as $ alias => $ tableName ) { if ( is_string ( $ tableName ) && ! is_string ( $ alias ) ) { $ pattern =  <<<PATTERN
~
^
\s*
(
(?:['"`\[]|{{)
.*?
(?:['"`\]]|}})
|
\(.*?\)
|
.*?
)
(?:
(?:
    \s+
    (?:as)?
    \s*
)
(
   (?:['"`\[]|{{)
    .*?
    (?:['"`\]]|}})
    |
    .*?
)
)?
\s*
$
~iux
PATTERN ; if ( preg_match ( $ pattern , $ tableName , $ matches ) ) { if ( isset ( $ matches [ 2 ] ) ) { list ( , $ tableName , $ alias ) = $ matches ; } else { $ tableName = $ alias = $ matches [ 1 ] ; } } } if ( $ tableName instanceof Expression ) { if ( ! is_string ( $ alias ) ) { throw new InvalidArgumentException ( 'To use Expression in from() method, pass it in array format with alias.' ) ; } $ cleanedUpTableNames [ $ this -> ensureNameQuoted ( $ alias ) ] = $ tableName ; } elseif ( $ tableName instanceof self ) { $ cleanedUpTableNames [ $ this -> ensureNameQuoted ( $ alias ) ] = $ tableName ; } else { $ cleanedUpTableNames [ $ this -> ensureNameQuoted ( $ alias ) ] = $ this -> ensureNameQuoted ( $ tableName ) ; } } return $ cleanedUpTableNames ; }
Clean up table names and aliases
Both aliases and names are enclosed into {{ and }}.
@param array $tableNames non-empty array
@return string[] table names indexed by aliases
@since 2.0.14
Clean up table names and aliases Both aliases and names are enclosed into {{ and }} .