20250820 v1.0.2-b2

This commit is contained in:
2025-08-20 18:09:37 +03:00
parent cc3b1ef41b
commit 95aa7d9411
22 changed files with 594 additions and 68 deletions

View File

@@ -12,7 +12,7 @@ namespace goodboyalex\php_db_components_pack;
## Автор и версия
- **Автор**: Александр Бабаев
- **Версия**: 1.0
- **Версия**: 1.0.2
- **Дата начала поддержки**: с версии 1.0
## Назначение
@@ -70,7 +70,7 @@ $condition = new Condition('age', '>', 18);
#### Задание условий с помощью функции (`FUNC:`)
Если в имени колонки передаётся какая-либо функция (начинать такую функцию следует с `FUNC:`), то при обработке она
Если в имени колонки передаётся какая-либо функция (начинать такую функцию следует с `FUNC:`), то при обработке она
не обрабатывается как столбец. Это же касается и значения.
Например, давайте добавим условие, что каждое новое имя пользователя начинается с заглавной буквы
@@ -82,8 +82,10 @@ $condition = new Condition('FUNC:SUBSTR(name, 1, 1)', "=", 'FUNC:UPPER(SUBSTR(na
```
в результате запрос будет содержать:
```sql
SUBSTR(name, 1, 1) = UPPER(SUBSTR(name, 1, 1)
SUBSTR
(name, 1, 1) = UPPER(SUBSTR(name, 1, 1)
```
### 2. Метод `Parse`
@@ -114,11 +116,12 @@ $parsedCondition = Condition::Parse(['age', '>', 18]);
**Синтаксис**:
```php
public function Get(int $index = 0): Tuple;
public function Get(DBDriver $driver, int $index = 0): Tuple;
```
**Описание**:
- **$driver**: Тип драйвера СУБД.
- **$index**: Индексация для замены переменных (для предотвращения SQL-инъекций).
- Метод возвращает кортеж (tuple), состоящий из двух частей:
- SQL-строку с замещаемым параметром (`:paramX`), где X — номер индекса.
@@ -127,7 +130,7 @@ public function Get(int $index = 0): Tuple;
**Пример использования**:
```php
[$sqlPart, $params] = $condition->Get();
[$sqlPart, $params] = $condition->Get(\goodboyalex\php_db_components_pack\enums\DBDriver::MySQL);
// $sqlPart будет выглядеть примерно так: "`age` > :param0"
// $params будет содержать массив с фактическим значением: ["param0" => 18]
```
@@ -136,12 +139,13 @@ public function Get(int $index = 0): Tuple;
```php
use goodboyalex\php_db_components_pack\Condition;
use goodboyalex\php_db_components_pack\enums\DBDriver;
// Создаём условие для поиска пользователей по возрасту
$condition = new Condition('age', '>', 18);
// Формируем условие для использования в SQL-запросе
list($sql, $parameters) = $condition->Get();
[$sql, $parameters] = $condition->Get(DBDriver::MySQL);
// Теперь можем использовать $sql и $parameters в запросе
$query = "SELECT * FROM users WHERE $sql";

View File

@@ -13,7 +13,7 @@ namespace goodboyalex\php_db_components_pack\classes;
## Автор и версия
- **Автор**: Александр Бабаев
- **Версия**: 1.0
- **Версия**: 1.0.2
- **Дата начала поддержки**: с версии 1.0
## Назначение
@@ -125,11 +125,12 @@ $builder = new ConditionBuilder()->AddGroup(Condition::LOGIC_OR, [new Condition(
**Синтаксис**:
```php
public function Build(): Tuple;
public function Build(DBDriver $driver): Tuple;
```
**Описание**:
- **$driver**: Тип драйвера СУБД.
- Метод возвращает кортеж (Tuple), состоящий из двух элементов:
- SQL-строка с условием, готовым к выполнению.
- Массив параметров, необходимых для последующей передачи в подготовленный SQL-запрос.
@@ -139,7 +140,7 @@ public function Build(): Tuple;
```php
// $sql будет (`age` >= :age), а params - [':age' = 18]
[$sql, $params] = new ConditionBuilder()->AddCondition('age', '>=', 18)->Build();
[$sql, $params] = new ConditionBuilder()->AddCondition('age', '>=', 18)->Build(\goodboyalex\php_db_components_pack\enums\DBDriver::MySQL);
```
---
@@ -317,9 +318,11 @@ public function WhereLike(string $column, string $value): ConditionBuilder;
```
**Описание**:
- **$column**: Имя колонки, по которой проводится поиск.
- **$value**: Шаблон для поиска (обычно включает символы `%` для указания маски).
- Метод добавляет условие в виде `WHERE column LIKE '%value%'` и возвращает объект для продолжительного построения условий.
- Метод добавляет условие в виде `WHERE column LIKE '%value%'` и возвращает объект для продолжительного построения
условий.
**Пример использования**:
@@ -341,10 +344,12 @@ public function AddCondition(string $column, string $operator, mixed $value): Co
```
**Описание**:
- **$column**: Имя колонки, участвующей в условии.
- **$operator**: Любой оператор сравнения (например, `=`, `!=`, `<`, `>`, `IN`, `BETWEEN`, и т.д.).
- **$value**: Значение, с которым производится сравнение.
- Метод добавляет условие в форме `WHERE column OPERATOR value` и возвращает объект для продолжения построения цепочки условий.
- Метод добавляет условие в форме `WHERE column OPERATOR value` и возвращает объект для продолжения построения цепочки
условий.
**Пример использования**:

View File

@@ -13,7 +13,7 @@ namespace goodboyalex\php_db_components_pack\classes;
## Автор и версия
- **Автор**: Александр Бабаев
- **Версия**: 1.0
- **Версия**: 1.0.2
- **Дата начала поддержки**: с версии 1.0
## Назначение