Example #1
0
 /**
  * @param Query $query
  * @return string
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 protected function combineQueryString(Query $query)
 {
     $selectString = $query->getQuery();
     $fromString = '';
     if ($query->getFrom()) {
         $fromString .= ' from ' . implode(', ', $query->getFrom());
     }
     $whereParts = array();
     foreach ($query->getOptions() as $whereOptions) {
         if (is_array($whereOptions['fieldValue'])) {
             $whereOptions['fieldValue'] = '(' . implode(', ', $whereOptions['fieldValue']) . ')';
         }
         $whereParts[] = sprintf('%s((%s)%s %s %s)', $whereOptions['type'], $whereOptions['fieldType'], $whereOptions['fieldName'], $whereOptions['condition'], $whereOptions['fieldValue']);
     }
     $whereString = '';
     if ($whereParts) {
         $whereString .= ' where ' . implode(' ', $whereParts);
     }
     $orderByString = '';
     if ($query->getOrderBy()) {
         $orderByString .= ' ' . $query->getOrderBy();
     }
     if ($query->getOrderDirection()) {
         $orderByString .= ' ' . $query->getOrderDirection();
     }
     if ($orderByString) {
         $orderByString = ' order by' . $orderByString;
     }
     $limitString = '';
     if ($query->getMaxResults() && $query->getMaxResults() != Query::INFINITY) {
         $limitString = ' limit ' . $query->getMaxResults();
     }
     $offsetString = '';
     if ($query->getFirstResult()) {
         $offsetString .= ' offset ' . $query->getFirstResult();
     }
     return $selectString . $fromString . $whereString . $orderByString . $limitString . $offsetString;
 }