138 lines
5.0 KiB
PHP
138 lines
5.0 KiB
PHP
<?php
|
|
|
|
namespace goodboyalex\php_db_components_pack\traits\ConditionBuilder;
|
|
|
|
use goodboyalex\php_db_components_pack\classes\Condition;
|
|
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
|
|
|
|
/**
|
|
* Трейт для построителя условий запроса выборки, отвечающий за задание цепочки условий.
|
|
*
|
|
* @author Александр Бабаев
|
|
* @package php_components_pack
|
|
* @version 1.0
|
|
* @since 1.0
|
|
*/
|
|
trait ConditionBuilderConditionsSet
|
|
{
|
|
/**
|
|
* Добавляет условие равенства.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereEquals (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '=', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие не равенства.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereNotEquals (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '<>', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие больше.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereGreaterThan (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '>', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие меньше.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereLessThan (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '<', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие больше или равно.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereGreaterThanEqual (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '>=', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие меньше или равно.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereLessThanEqual (string $column, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, '<=', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие LIKE.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param string $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function WhereLike (string $column, string $value): ConditionBuilder
|
|
{
|
|
return $this->AddCondition($column, 'LIKE', $value);
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие.
|
|
*
|
|
* @param string $column Имя колонки.
|
|
* @param string $operator Оператор (<=, <, =, >, >=, ...).
|
|
* @param mixed $value Значение.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
public function AddCondition (string $column, string $operator, mixed $value): ConditionBuilder
|
|
{
|
|
return $this->AddConditionA(new Condition($column, $operator, $value));
|
|
}
|
|
|
|
/**
|
|
* Добавляет условие.
|
|
*
|
|
* @param Condition $condition Условие.
|
|
*
|
|
* @return ConditionBuilder Возвращает объект для цепочек.
|
|
*/
|
|
private function AddConditionA (Condition $condition): ConditionBuilder
|
|
{
|
|
// Добавляем условие
|
|
$this->Conditions[] = $condition;
|
|
|
|
// Возвращаем объект
|
|
return $this;
|
|
}
|
|
} |