for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Muffin\Queries\Snippets\Builders;
use Muffin\Queries\Snippets;
trait Join
{
protected
$joins = array();
public function innerJoin($table, $alias = null)
$this->joins[] = new Snippets\Joins\InnerJoin($table, $alias);
return $this;
}
public function leftJoin($table, $alias = null)
$this->joins[] = new Snippets\Joins\LeftJoin($table, $alias);
public function rightJoin($table, $alias = null)
$this->joins[] = new Snippets\Joins\RightJoin($table, $alias);
public function on($leftColumn, $rightColumn)
$join = $this->getLastJoin();
$join->on($leftColumn, $rightColumn);
public function using($column)
$join->using($column);
protected function buildJoin()
foreach($this->joins as $innerJoin)
$joins[] = $innerJoin->toString();
return implode(' ', $joins);
private function getLastJoin()
$lastJoins = end($this->joins);
if(! $lastJoins instanceof Snippets\Join)
throw new \LogicException('Erreur dans la récupération de la dernière jointure');
return $lastJoins;