20250807
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Класс `DBConfig`
|
||||
# Модель `DBConfig`
|
||||
|
||||
## Описание
|
||||
|
||||
|
97
help/class_desc/models/DBItemProperty.md
Normal file
97
help/class_desc/models/DBItemProperty.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# Класс `DBItemProperty`
|
||||
|
||||
Класс `DBItemProperty` предназначен для описания отдельного свойства объекта, реализующего интерфейс `IDBItem`. Он
|
||||
предоставляет полную информацию о свойствах объекта, предназначенных для хранения в базе данных, включая имя, значение,
|
||||
тип данных, правила преобразования и сравнение.
|
||||
|
||||
## Пространство имён
|
||||
|
||||
```php
|
||||
namespace goodboyalex\php_db_components_pack\models;
|
||||
```
|
||||
|
||||
## Автор и версия
|
||||
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Назначение
|
||||
|
||||
Класс `DBItemProperty` описывает отдельную сущность — объект и его свойства, предназначенного для хранения в базе
|
||||
данных. Помимо основного значения, он также хранит информацию о том, как это свойство будет отражаться в базе данных
|
||||
(например, имя колонки, тип данных, преобразователи и правила игнорирования).
|
||||
|
||||
## Основные элементы класса
|
||||
|
||||
### Поля
|
||||
|
||||
## Поля класса `DBItemProperty`
|
||||
|
||||
| Имя поля | Тип поля | Описание |
|
||||
|---------------|----------------|--------------------------------------------------------------------------------------------------------------|
|
||||
| Name | string | Имя свойства в объекте. |
|
||||
| Value | mixed | Текущее значение свойства (до преобразования). |
|
||||
| Column | DataBaseColumn | Объект, описывающий характеристики колонки в базе данных (тип данных, ограничения и т.д.). |
|
||||
| IsIgnored | bool | Признак, указывающий, что данное свойство игнорируется при сохранении в базу данных или загрузке из неё. | |
|
||||
| ConvertToDB | Closure | Замыкание, осуществляющее преобразование значения свойства в формат, подходящий для записи в базу данных. |
|
||||
| ConvertFromDB | Closure | Замыкание, осуществляющее обратное преобразование из формата базы данных в формат внутреннего представления. |
|
||||
| Compare | Closure | Замыкание, позволяющее сравнивать значения свойства. |
|
||||
|
||||
### Конструктор
|
||||
|
||||
Позволяет сконструировать объект с полной информацией о свойстве, включая имя, значение, связь с колонкой базы данных и
|
||||
средства преобразования и сравнения.
|
||||
|
||||
## Пример использования
|
||||
|
||||
Допустим, у вас есть объект пользователя, и вы хотите описать свойство `username` следующим образом:
|
||||
|
||||
```php
|
||||
use goodboyalex\php_db_components_pack\models\DBItemProperty;
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
|
||||
// Создаём объект свойства username
|
||||
$property = new DBItemProperty(
|
||||
// Имя свойства
|
||||
'username',
|
||||
// Текущее значение
|
||||
'john_doe',
|
||||
// Характеристики колонки
|
||||
new DataBaseColumn(
|
||||
// - имя колонки в базе данных
|
||||
'user_name',
|
||||
// - тип данных (строка, макс. 255 символов)
|
||||
new Tuple(DBType::STRING, 255),
|
||||
// - NOT NULL
|
||||
true,
|
||||
// - UNIQUE
|
||||
true,
|
||||
// - не первичный ключ
|
||||
false,
|
||||
// - без внешнего ключа
|
||||
new Tuple(null, null),
|
||||
// - без проверок
|
||||
new ConditionBuilder(),
|
||||
// - значение по умолчанию
|
||||
''
|
||||
),
|
||||
// Не игнорируется
|
||||
false,
|
||||
// Преобразование в нижний регистр перед сохранением
|
||||
function ($value) { return strtolower($value); },
|
||||
// Преобразование в Title Case при получении
|
||||
function ($value) { return ucfirst($value); },
|
||||
// Функция сравнения
|
||||
function ($left, $right) { return strcmp($left, $right); }
|
||||
);
|
||||
```
|
||||
|
||||
## Дополнительная информация
|
||||
|
||||
Класс `DBItemProperty` является важной составляющей инфраструктуры для работы с объектами, предназначенными для хранения
|
||||
в базе данных. Он позволяет детально описывать свойства объектов, включая преобразования и правила загрузки/записи, что
|
||||
существенно упрощает интеграцию с базой данных и повышает гибкость работы с данными.
|
||||
|
||||
[На главную](../../index.md)
|
84
help/class_desc/models/DataBaseColumn.md
Normal file
84
help/class_desc/models/DataBaseColumn.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Модель `DataBaseColumn`
|
||||
|
||||
Класс `DataBaseColumn` предназначен для описания структуры отдельной колонки в базе данных. Он предоставляет подробную
|
||||
информацию о характеристиках колонки, таких как тип данных, ограничения на значения, связи с другими таблицами и многое
|
||||
другое.
|
||||
|
||||
## Пространство имён
|
||||
|
||||
```php
|
||||
namespace goodboyalex\php_db_components_pack\models;
|
||||
```
|
||||
|
||||
## Автор и версия
|
||||
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Назначение
|
||||
|
||||
Класс `DataBaseColumn` используется для точного описания характеристик колонки в базе данных. Он позволяет указать тип
|
||||
данных, длину, обязательность, уникальность, наличие первичного ключа, внешний ключ, проверку данных и прочие аспекты,
|
||||
влияющие на корректную работу с базой данных.
|
||||
|
||||
## Основные элементы класса
|
||||
|
||||
### Поля
|
||||
|
||||
## Поля класса `DataBaseColumn`
|
||||
|
||||
| Имя поля | Тип поля | Описание |
|
||||
|-----------------|------------------|--------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Name | string | Имя колонки в базе данных. |
|
||||
| Type | Tuple | Тип данных колонки, где первый элемент — тип данных (например, `DBType::STRING`), второй — максимальная длина (например, 255). |
|
||||
| IsNotNull | bool | Признак, указывающий, разрешена ли установка значения `NULL` в колонку. |
|
||||
| IsUnique | bool | Признак, указывающий, что каждое значение в колонке должно быть уникальным. |
|
||||
| IsPrimaryKey | bool | Признак, указывающий, что колонка является первичным ключом. |
|
||||
| ForeignWith | Tuple | Внешний ключ, связанный с другой таблицей, где первый элемент — имя таблицы, второй — имя колонки. |
|
||||
| Check | ConditionBuilder | Контрольные условия для вносимых данных, представлены объектом `ConditionBuilder`. |
|
||||
| Default | mixed | Значение по умолчанию для колонки. Может быть любого подходящего типа данных. |
|
||||
| IsAutoIncrement | bool | Признак, указывающий, что значение колонки генерируется автоматически при добавлении новой записи (авто-инкремент). |
|
||||
|
||||
### Конструктор
|
||||
|
||||
Позволяет задать полную конфигурацию колонки, включая имя, тип данных, ограничения и связи.
|
||||
|
||||
## Пример использования
|
||||
|
||||
Допустим, у вас есть таблица пользователей, и вы хотите описать колонку с именем пользователя следующим образом:
|
||||
|
||||
```php
|
||||
use goodboyalex\php_db_components_pack\models\DataBaseColumn;
|
||||
use goodboyalex\php_db_components_pack\enums\DBType;
|
||||
|
||||
// Создаём объект колонки
|
||||
$column = new DataBaseColumn(
|
||||
// Имя колонки
|
||||
'username',
|
||||
// Тип данных (строка, максимум 255 символов)
|
||||
new Tuple(DBType::STRING, 255),
|
||||
// Запрет пустых значений (NOT NULL)
|
||||
true,
|
||||
// Уникальные значения (UNIQUE)
|
||||
true,
|
||||
// Не является первичным ключом
|
||||
false,
|
||||
// Без внешнего ключа
|
||||
new Tuple(null, null),
|
||||
// Без проверок
|
||||
new ConditionBuilder(),
|
||||
// Значение по умолчанию (пустая строка)
|
||||
'',
|
||||
// Авто-инкремент отключён
|
||||
false
|
||||
);
|
||||
```
|
||||
|
||||
## Дополнительная информация
|
||||
|
||||
Класс `DataBaseColumn` является мощным инструментом для детализации структуры колонок базы данных. Он предоставляет
|
||||
широкие возможности для настройки различных аспектов колонки, таких как тип данных, ограничения, связи и прочее. Это
|
||||
существенно облегчает работу с базой данных и способствует повышению качества проектирования моделей данных.
|
||||
|
||||
[На главную](../../index.md)
|
Reference in New Issue
Block a user