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