diff options
Diffstat (limited to 'vendor/fguillot/picodb/lib/PicoDb/Builder')
5 files changed, 0 insertions, 598 deletions
diff --git a/vendor/fguillot/picodb/lib/PicoDb/Builder/BaseBuilder.php b/vendor/fguillot/picodb/lib/PicoDb/Builder/BaseBuilder.php deleted file mode 100644 index e075ae3c..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/Builder/BaseBuilder.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -namespace PicoDb\Builder; - -use PicoDb\Database; - -/** - * Class InsertBuilder - * - * @package PicoDb\Builder - * @author Frederic Guillot - */ -abstract class BaseBuilder -{ - /** - * @var Database - */ - protected $db; - - /** - * @var ConditionBuilder - */ - protected $conditionBuilder; - - /** - * @var string - */ - protected $table = ''; - - /** - * @var string[] - */ - protected $columns = array(); - - /** - * InsertBuilder constructor - * - * @param Database $db - * @param ConditionBuilder $condition - */ - public function __construct(Database $db, ConditionBuilder $condition) - { - $this->db = $db; - $this->conditionBuilder = $condition; - } - - /** - * Get object instance - * - * @static - * @access public - * @param Database $db - * @param ConditionBuilder $condition - * @return static - */ - public static function getInstance(Database $db, ConditionBuilder $condition) - { - return new static($db, $condition); - } - - /** - * Set table name - * - * @access public - * @param string $table - * @return $this - */ - public function withTable($table) - { - $this->table = $table; - return $this; - } - - /** - * Set columns name - * - * @access public - * @param string[] $columns - * @return $this - */ - public function withColumns(array $columns) - { - $this->columns = $columns; - return $this; - } -} diff --git a/vendor/fguillot/picodb/lib/PicoDb/Builder/ConditionBuilder.php b/vendor/fguillot/picodb/lib/PicoDb/Builder/ConditionBuilder.php deleted file mode 100644 index b0465b6e..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/Builder/ConditionBuilder.php +++ /dev/null @@ -1,377 +0,0 @@ -<?php - -namespace PicoDb\Builder; - -use PicoDb\Database; -use PicoDb\Table; - -/** - * Handle SQL conditions - * - * @package PicoDb\Builder - * @author Frederic Guillot - */ -class ConditionBuilder -{ - /** - * Database instance - * - * @access private - * @var Database - */ - private $db; - - /** - * Condition values - * - * @access private - * @var array - */ - private $values = array(); - - /** - * SQL AND conditions - * - * @access private - * @var string[] - */ - private $conditions = array(); - - /** - * SQL OR conditions - * - * @access private - * @var OrConditionBuilder[] - */ - private $orConditions = array(); - - /** - * SQL condition offset - * - * @access private - * @var int - */ - private $orConditionOffset = 0; - - /** - * Constructor - * - * @access public - * @param Database $db - */ - public function __construct(Database $db) - { - $this->db = $db; - } - - /** - * Build the SQL condition - * - * @access public - * @return string - */ - public function build() - { - return empty($this->conditions) ? '' : ' WHERE '.implode(' AND ', $this->conditions); - } - - /** - * Get condition values - * - * @access public - * @return array - */ - public function getValues() - { - return $this->values; - } - - /** - * Returns true if there is some conditions - * - * @access public - * @return boolean - */ - public function hasCondition() - { - return ! empty($this->conditions); - } - - /** - * Add custom condition - * - * @access public - * @param string $sql - */ - public function addCondition($sql) - { - if ($this->orConditionOffset > 0) { - $this->orConditions[$this->orConditionOffset]->withCondition($sql); - } - else { - $this->conditions[] = $sql; - } - } - - /** - * Start OR condition - * - * @access public - */ - public function beginOr() - { - $this->orConditionOffset++; - $this->orConditions[$this->orConditionOffset] = new OrConditionBuilder(); - } - - /** - * Close OR condition - * - * @access public - */ - public function closeOr() - { - $condition = $this->orConditions[$this->orConditionOffset]->build(); - $this->orConditionOffset--; - - if ($this->orConditionOffset > 0) { - $this->orConditions[$this->orConditionOffset]->withCondition($condition); - } else { - $this->conditions[] = $condition; - } - } - - /** - * Equal condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function eq($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' = ?'); - $this->values[] = $value; - } - - /** - * Not equal condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function neq($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' != ?'); - $this->values[] = $value; - } - - /** - * IN condition - * - * @access public - * @param string $column - * @param array $values - */ - public function in($column, array $values) - { - if (! empty($values)) { - $this->addCondition($this->db->escapeIdentifier($column).' IN ('.implode(', ', array_fill(0, count($values), '?')).')'); - $this->values = array_merge($this->values, $values); - } - } - - /** - * IN condition with a subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function inSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' IN ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * NOT IN condition - * - * @access public - * @param string $column - * @param array $values - */ - public function notIn($column, array $values) - { - if (! empty($values)) { - $this->addCondition($this->db->escapeIdentifier($column).' NOT IN ('.implode(', ', array_fill(0, count($values), '?')).')'); - $this->values = array_merge($this->values, $values); - } - } - - /** - * NOT IN condition with a subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function notInSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' NOT IN ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * LIKE condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function like($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' '.$this->db->getDriver()->getOperator('LIKE').' ?'); - $this->values[] = $value; - } - - /** - * ILIKE condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function ilike($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' '.$this->db->getDriver()->getOperator('ILIKE').' ?'); - $this->values[] = $value; - } - - /** - * Greater than condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function gt($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' > ?'); - $this->values[] = $value; - } - - /** - * Greater than condition with subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function gtSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' > ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * Lower than condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function lt($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' < ?'); - $this->values[] = $value; - } - - /** - * Lower than condition with subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function ltSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' < ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * Greater than or equals condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function gte($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' >= ?'); - $this->values[] = $value; - } - - /** - * Greater than or equal condition with subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function gteSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' >= ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * Lower than or equals condition - * - * @access public - * @param string $column - * @param mixed $value - */ - public function lte($column, $value) - { - $this->addCondition($this->db->escapeIdentifier($column).' <= ?'); - $this->values[] = $value; - } - - /** - * Lower than or equal condition with subquery - * - * @access public - * @param string $column - * @param Table $subquery - */ - public function lteSubquery($column, Table $subquery) - { - $this->addCondition($this->db->escapeIdentifier($column).' <= ('.$subquery->buildSelectQuery().')'); - $this->values = array_merge($this->values, $subquery->getConditionBuilder()->getValues()); - } - - /** - * IS NULL condition - * - * @access public - * @param string $column - */ - public function isNull($column) - { - $this->addCondition($this->db->escapeIdentifier($column).' IS NULL'); - } - - /** - * IS NOT NULL condition - * - * @access public - * @param string $column - */ - public function notNull($column) - { - $this->addCondition($this->db->escapeIdentifier($column).' IS NOT NULL'); - } -} diff --git a/vendor/fguillot/picodb/lib/PicoDb/Builder/InsertBuilder.php b/vendor/fguillot/picodb/lib/PicoDb/Builder/InsertBuilder.php deleted file mode 100644 index 9d06c405..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/Builder/InsertBuilder.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -namespace PicoDb\Builder; - -/** - * Class InsertBuilder - * - * @package PicoDb\Builder - * @author Frederic Guillot - */ -class InsertBuilder extends BaseBuilder -{ - /** - * Build SQL - * - * @access public - * @return string - */ - public function build() - { - $columns = array(); - $placeholders = array(); - - foreach ($this->columns as $column) { - $columns[] = $this->db->escapeIdentifier($column); - $placeholders[] = ':'.$column; - } - - return sprintf( - 'INSERT INTO %s (%s) VALUES (%s)', - $this->db->escapeIdentifier($this->table), - implode(', ', $columns), - implode(', ', $placeholders) - ); - } -} diff --git a/vendor/fguillot/picodb/lib/PicoDb/Builder/OrConditionBuilder.php b/vendor/fguillot/picodb/lib/PicoDb/Builder/OrConditionBuilder.php deleted file mode 100644 index 0defeaf4..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/Builder/OrConditionBuilder.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php - -namespace PicoDb\Builder; - -/** - * Class OrConditionBuilder - * - * @package PicoDb\Builder - * @author Frederic Guillot - */ -class OrConditionBuilder -{ - /** - * List of SQL conditions - * - * @access protected - * @var string[] - */ - protected $conditions = array(); - - /** - * Add new condition - * - * @access public - * @param string $condition - * @return $this - */ - public function withCondition($condition) { - $this->conditions[] = $condition; - return $this; - } - - /** - * Build SQL - * - * @access public - * @return string - */ - public function build() - { - return '('.implode(' OR ', $this->conditions).')'; - } -} diff --git a/vendor/fguillot/picodb/lib/PicoDb/Builder/UpdateBuilder.php b/vendor/fguillot/picodb/lib/PicoDb/Builder/UpdateBuilder.php deleted file mode 100644 index 300ea9b0..00000000 --- a/vendor/fguillot/picodb/lib/PicoDb/Builder/UpdateBuilder.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -namespace PicoDb\Builder; - -/** - * Class UpdateBuilder - * - * @package PicoDb\Builder - * @author Frederic Guillot - */ -class UpdateBuilder extends BaseBuilder -{ - /** - * @var string[] - */ - protected $sumColumns = array(); - - /** - * Set columns name - * - * @access public - * @param string[] $columns - * @return $this - */ - public function withSumColumns(array $columns) - { - $this->sumColumns = $columns; - return $this; - } - - /** - * Build SQL - * - * @access public - * @return string - */ - public function build() - { - $columns = array(); - - foreach ($this->columns as $column) { - $columns[] = $this->db->escapeIdentifier($column).'=?'; - } - - foreach ($this->sumColumns as $column) { - $columns[] = $this->db->escapeIdentifier($column).'='.$this->db->escapeIdentifier($column).' + ?'; - } - - return sprintf( - 'UPDATE %s SET %s %s', - $this->db->escapeIdentifier($this->table), - implode(', ', $columns), - $this->conditionBuilder->build() - ); - } -} |