Skip to content
Snippets Groups Projects

implement ordering by specific values

Merged Jiří Pudil requested to merge order-by-values into master
6 files
+ 95
26
Compare changes
  • Side-by-side
  • Inline
Files
6
+ 3
23
@@ -5,31 +5,11 @@ declare(strict_types=1);
namespace Grifart\Tables\OrderBy;
use Dibi\Expression as DibiExpression;
use Grifart\Tables\Expression;
final class OrderBy
interface OrderBy
{
private readonly Nulls $nulls;
/**
* @param Expression<mixed> $expression
* @return DibiExpression the ORDER BY part of a Dibi query
*/
public function __construct(
private readonly Expression $expression,
private readonly Direction $direction = Direction::Ascending,
Nulls|null $nulls = null,
)
{
$this->nulls = $nulls ?? Nulls::default($this->direction);
}
public function toSql(): DibiExpression
{
return new DibiExpression(
'? %ex %ex',
$this->expression->toSql(),
$this->direction->toSql(),
$this->nulls->toSql(),
);
}
public function toSql(): DibiExpression;
}
Loading