. */ /** * FromClause = "FROM" IdentificationVariableDeclaration {"," IdentificationVariableDeclaration} * * @package Doctrine * @subpackage Query * @author Guilherme Blanco * @author Janne Vanhala * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link http://www.phpdoctrine.org * @since 2.0 * @version $Revision$ */ class Doctrine_Query_Production_FromClause extends Doctrine_Query_Production { protected $_identificationVariableDeclaration = array(); public function syntax($paramHolder) { // FromClause = "FROM" IdentificationVariableDeclaration {"," IdentificationVariableDeclaration} $this->_parser->match(Doctrine_Query_Token::T_FROM); $this->_identificationVariableDeclaration[] = $this->AST('IdentificationVariableDeclaration', $paramHolder); while ($this->_isNextToken(',')) { $this->_parser->match(','); $this->_identificationVariableDeclaration[] = $this->AST('IdentificationVariableDeclaration', $paramHolder); } } public function buildSql() { //echo "FromClause:\n"; //for ($i = 0; $i < count($this->_identificationVariableDeclaration);$i++) { // echo (($this->_identificationVariableDeclaration[$i] instanceof IdentificationVariableDeclaration) ? get_class($this->_identificationVariableDeclaration[$i]) : get_class($this->_identificationVariableDeclaration[$i])) . "\n"; //} return 'FROM ' . implode(', ', $this->_mapIdentificationVariableDeclarations()); } protected function _mapIdentificationVariableDeclarations() { return array_map(array(&$this, '_mapIdentificationVariableDeclaration'), $this->_identificationVariableDeclaration); } protected function _mapIdentificationVariableDeclaration($value) { return $value->buildSql(); } /* Getters */ public function getIdentificationVariableDeclarations() { return $this->_identificationVariableDeclaration; } }