. */ namespace SP\Mvc\Model; /** * Class QueryJoin * * @package SP\Mvc\Model */ final class QueryJoin { protected array $join = []; protected array $param = []; public function addJoin(string $join, ?array $params = null): QueryJoin { $this->join[] = $join; if ($params !== null) { $this->param = array_merge($this->param, $params); } return $this; } public function getJoins(): ?string { return $this->hasJoins() ? implode(PHP_EOL, $this->join) : null; } public function hasJoins(): bool { return count($this->join) !== 0; } public function getParams(): array { return $this->param; } public function getJoinsCount(): int { return count($this->join); } }