php_db_components_pack/sources/traits/ConditionBuilder/ConditionBuilderConditionsSet.php
2025-08-10 11:48:29 +03:00

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;
}
}