mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-04-28 02:18:26 +02:00
42 lines
821 B
PHP
42 lines
821 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace DesignPatterns\Structural\FluentInterface;
|
|
|
|
class Sql
|
|
{
|
|
private array $fields = [];
|
|
private array $from = [];
|
|
private array $where = [];
|
|
|
|
public function select(array $fields): Sql
|
|
{
|
|
$this->fields = $fields;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function from(string $table, string $alias): Sql
|
|
{
|
|
$this->from[] = $table.' AS '.$alias;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function where(string $condition): Sql
|
|
{
|
|
$this->where[] = $condition;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function __toString(): string
|
|
{
|
|
return sprintf(
|
|
'SELECT %s FROM %s WHERE %s',
|
|
join(', ', $this->fields),
|
|
join(', ', $this->from),
|
|
join(' AND ', $this->where)
|
|
);
|
|
}
|
|
}
|