From f4663f45127e0dcd029b992dedc426a3cfa6fd1d Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 5 Dec 2011 22:19:54 +0100 Subject: [PATCH] [DDC-551] Another batch of small refactorings --- lib/Doctrine/ORM/EntityManager.php | 1 - lib/Doctrine/ORM/Persisters/ManyToManyPersister.php | 7 ++++--- lib/Doctrine/ORM/Query/SqlWalker.php | 11 ++++------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/Doctrine/ORM/EntityManager.php b/lib/Doctrine/ORM/EntityManager.php index 9adf82301..3f9e477c7 100644 --- a/lib/Doctrine/ORM/EntityManager.php +++ b/lib/Doctrine/ORM/EntityManager.php @@ -800,7 +800,6 @@ class EntityManager implements ObjectManager /** * Gets the enabled filters. * - * @access public * @return FilterCollection The active filter collection. */ public function getFilters() diff --git a/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php b/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php index f765b77f1..e9f4b9820 100644 --- a/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php +++ b/lib/Doctrine/ORM/Persisters/ManyToManyPersister.php @@ -360,11 +360,12 @@ class ManyToManyPersister extends AbstractCollectionPersister . $targetClass->getQuotedTableName($this->_conn->getDatabasePlatform()) . ' te' . ' ON'; - $first = true; + $joinTargetEntitySQLClauses = array(); foreach($mapping['relationToTargetKeyColumns'] as $joinTableColumn => $targetTableColumn) { - if(!$first) $joinTargetEntitySQL .= ' AND '; else $first = false; - $joinTargetEntitySQL .= ' t.' . $joinTableColumn . ' = ' . 'te.' . $targetTableColumn; + $joinTargetEntitySQLClauses[] = ' t.' . $joinTableColumn . ' = ' . 'te.' . $targetTableColumn; } + + $joinTargetEntitySQL .= implode(' AND ', $joinTargetEntitySQLClauses); } return array($joinTargetEntitySQL, $filterSql); diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php index cf20f747b..e6a08bf5a 100644 --- a/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/lib/Doctrine/ORM/Query/SqlWalker.php @@ -1502,24 +1502,21 @@ class SqlWalker implements TreeWalker $condSql = null !== $whereClause ? $this->walkConditionalExpression($whereClause->conditionalExpression) : ''; $discrSql = $this->_generateDiscriminatorColumnConditionSql($this->_rootAliases); - $filterSql = ''; - // Apply the filters for all entities in FROM - $first = true; + $filterClauses = array(); foreach ($this->_rootAliases as $dqlAlias) { $class = $this->_queryComponents[$dqlAlias]['metadata']; $tableAlias = $this->getSQLTableAlias($class->table['name'], $dqlAlias); if("" !== $filterExpr = $this->generateFilterConditionSQL($class, $tableAlias)) { - if ( ! $first) $filterSql .= ' AND '; else $first = false; - $filterSql .= $filterExpr; + $filterClauses[] = $filterExpr; } } - if ('' !== $filterSql) { + if (count($filterClauses)) { if($condSql) $condSql .= ' AND '; - $condSql .= $filterSql; + $condSql .= implode(' AND ', $filterClauses); } if ($condSql) {