public function testParseSQLAlias() { $this->assertSame(array(null, null), \r8\Query::parseSQLAlias(" ")); $this->assertSame(array("Expr", null), \r8\Query::parseSQLAlias("Expr")); $this->assertSame(array("Expr", "alias"), \r8\Query::parseSQLAlias("Expr AS alias")); $this->assertSame(array("`Expr`", "alias"), \r8\Query::parseSQLAlias("`Expr` AS `alias`")); $this->assertSame(array("`Expr AS `", "ASalias"), \r8\Query::parseSQLAlias("`Expr AS ` AS ` AS alias`")); $this->assertSame(array("Expr", null), \r8\Query::parseSQLAlias("Expr AS ")); $this->assertSame(array("Expr", "ASalias"), \r8\Query::parseSQLAlias("Expr AS AS alias")); $this->assertSame(array("`Expr\\`quoted`", null), \r8\Query::parseSQLAlias("`Expr\\`quoted` AS ")); }
/** * Instantiates a new instance of this object from a string * * @param String $string The string to parse into an object * @return \r8\Query\From\Table */ public static function fromString($string) { list($string, $alias) = \r8\Query::parseSQLAlias($string); // Split the name into the table and database $parsed = \r8\Query::parseSQLName($string); // Instantiate with the table name $field = new self(array_pop($parsed)); // Set the database if we found one if (count($parsed) > 0) { $field->setDatabase(array_pop($parsed)); } // Now load in the alias if ($alias) { $field->setAlias($alias); } return $field; }
/** * Instantiates a new instance of this object from a string * * @param String $string The string to parse into an object * @return \r8\Query\Expr\Aliased */ public static function fromString($string) { list($string, $alias) = \r8\Query::parseSQLAlias($string); $atom = \r8\Query\Atom\Field::fromString($string); return new self($atom, $alias); }