php_db_components_pack/sources/traits/ConditionBuilder/ConditionBuilderLogicalOperationSet.php
2025-08-01 18:29:11 +03:00

125 lines
4.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 ConditionBuilderLogicalOperationSet
{
/**
* Добавляет логический оператор.
*
* @param string $operator Оператор.
*
* @return false|ConditionBuilder Возвращает объект для цепочек или <code>false</code>, если оператор не верный.
*/
public function AddLogicalOperator (string $operator): false|ConditionBuilder
{
// Подготавливаем оператор
$operator = self::PrepareLogicalOperator($operator);
// Проверяем оператор, и если он не верный
if ($operator === false)
// - то возвращаем false
return false;
// Добавляем условие
$this->Conditions[] = $operator;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое И.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function And (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_AND;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое ИЛИ.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function Or (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_OR;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое НЕ.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function Not (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_NOT;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое ИСКЛЮЧАЮЩЕЕ ИЛИ.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function Xor (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_XOR;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое НЕ И.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function Nand (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_NAND;
// Возвращаем объект
return $this;
}
/**
* Добавляет логическое НЕ ИЛИ.
*
* @return ConditionBuilder Возвращает объект для цепочек.
*/
public function Nor (): ConditionBuilder
{
// Добавляем условие
$this->Conditions[] = Condition::LOGIC_NOR;
// Возвращаем объект
return $this;
}
}