This commit is contained in:
2025-08-06 18:10:04 +03:00
parent 7b42ba781c
commit eeea57209e
19 changed files with 636 additions and 16 deletions

View File

@@ -0,0 +1,63 @@
# Атрибут `AutoIncrement`
Атрибут `AutoIncrement` используется для пометки полей в моделях данных, которые будут автоматически заполняться
уникальным значением при каждом новом сохранении записи. Обычно он применяется для идентификации уникальных записей,
таких как первичные ключи.
## Основное назначение
Этот атрибут необходим для того, чтобы отметить поля, значения которых не задаются вручную, а генерируются автоматически
самой базой данных при вставке нового элемента. Например, если поле объявлено как автоинкрементируемое (AUTO_INCREMENT в
MySQL, SERIAL в PostgreSQL), то именно этот атрибут поможет разработчику ясно выразить намерение, что такое поле само
получает уникальный идентификатор.
## Пример использования атрибута
Предположим, у вас есть простая модель данных, описывающая пользователей, где каждое поле соответствует столбцу в базе
данных:
```php
use goodboyalex\php_db_components_pack\attributes\AutoIncrement;
final class User
{
#[AutoIncrement]
private int $Id;
private string $Name;
private string $Email;
// ...
}
```
Здесь атрибут `#[AutoIncrement]` указывает, что поле `$Id` будет автоматически получать уникальные значения при создании
новых записей.
## Пространство имён
Атрибут объявлен в пространстве имён:
```php
namespace goodboyalex\php_db_components_pack\attributes;
```
### Версии и автор
- **Автор**: Александр Бабаев
- **Версия**: 1.0
- **Дата выпуска**: с версии 1.0
### Особенности
- **Только для свойств (fields)**
Атрибут применим исключительно к свойствам классов, которые представляют собой поля базы данных.
### Когда использовать атрибут?
Атрибут `AutoIncrement` рекомендуется использовать в случаях, когда важно подчеркнуть автоматическое поведение поля при
вставке новых записей в базу данных. Особенно это актуально для идентификационных полей, таких как первичные ключи, где
обеспечение уникальности критично для целостности данных.
[На главную](../../index.md)