for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Phuria\QueryBuilder\QueryCompiler;
use Phuria\QueryBuilder\QueryBuilder;
use Phuria\QueryBuilder\QueryClauses;
/**
* @author Beniamin Jonatan Šimko <[email protected]>
*/
class SelectQueryCompiler implements QueryCompilerInterface
{
* @inheritdoc
public function canHandleQuery(QueryBuilder $qb)
return QueryClauses::QUERY_SELECT === $qb->getQueryClauses()->guessQueryType();
}
public function compile(QueryBuilder $qb)
$clauses = $qb->getQueryClauses();
return implode(' ', array_filter([
$clauses->getSelectExpression()->compile(),
$qb->getRootTables()->isEmpty() ? '' : 'FROM ' . $qb->getRootTables()->compile(),
$qb->getJoinTables()->compile(),
$clauses->getWhereExpression()->compile(),
$clauses->getGroupByExpression()->compile(),
$clauses->getHavingExpression()->compile(),
$clauses->getOrderByExpression()->compile()
]));