| 1 |
<?php |
| 2 |
|
| 3 |
namespace Give\Framework\QueryBuilder; |
| 4 |
|
| 5 |
use Give\Framework\QueryBuilder\Concerns\Aggregate; |
| 6 |
use Give\Framework\QueryBuilder\Concerns\CRUD; |
| 7 |
use Give\Framework\QueryBuilder\Concerns\FromClause; |
| 8 |
use Give\Framework\QueryBuilder\Concerns\GroupByStatement; |
| 9 |
use Give\Framework\QueryBuilder\Concerns\HavingClause; |
| 10 |
use Give\Framework\QueryBuilder\Concerns\JoinClause; |
| 11 |
use Give\Framework\QueryBuilder\Concerns\LimitStatement; |
| 12 |
use Give\Framework\QueryBuilder\Concerns\MetaQuery; |
| 13 |
use Give\Framework\QueryBuilder\Concerns\OffsetStatement; |
| 14 |
use Give\Framework\QueryBuilder\Concerns\OrderByStatement; |
| 15 |
use Give\Framework\QueryBuilder\Concerns\SelectStatement; |
| 16 |
use Give\Framework\QueryBuilder\Concerns\TablePrefix; |
| 17 |
use Give\Framework\QueryBuilder\Concerns\UnionOperator; |
| 18 |
use Give\Framework\QueryBuilder\Concerns\WhereClause; |
| 19 |
|
| 20 |
/** |
| 21 |
* @since 2.19.0 |
| 22 |
*/ |
| 23 |
class QueryBuilder |
| 24 |
{ |
| 25 |
use Aggregate; |
| 26 |
use CRUD; |
| 27 |
use FromClause; |
| 28 |
use GroupByStatement; |
| 29 |
use HavingClause; |
| 30 |
use JoinClause; |
| 31 |
use LimitStatement; |
| 32 |
use MetaQuery; |
| 33 |
use OffsetStatement; |
| 34 |
use OrderByStatement; |
| 35 |
use SelectStatement; |
| 36 |
use TablePrefix; |
| 37 |
use UnionOperator; |
| 38 |
use WhereClause; |
| 39 |
|
| 40 |
/** |
| 41 |
* @return string |
| 42 |
*/ |
| 43 |
public function getSQL() |
| 44 |
{ |
| 45 |
$sql = array_merge( |
| 46 |
$this->getSelectSQL(), |
| 47 |
$this->getFromSQL(), |
| 48 |
$this->getJoinSQL(), |
| 49 |
$this->getWhereSQL(), |
| 50 |
$this->getGroupBySQL(), |
| 51 |
$this->getHavingSQL(), |
| 52 |
$this->getOrderBySQL(), |
| 53 |
$this->getLimitSQL(), |
| 54 |
$this->getOffsetSQL(), |
| 55 |
$this->getUnionSQL() |
| 56 |
); |
| 57 |
|
| 58 |
// Trim double spaces added by DB::prepare |
| 59 |
return str_replace( |
| 60 |
[' ', ' '], |
| 61 |
' ', |
| 62 |
implode(' ', $sql) |
| 63 |
); |
| 64 |
} |
| 65 |
} |
| 66 |
|