20250801
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user