This commit is contained in:
2025-08-07 18:06:55 +03:00
parent eeea57209e
commit d132832d28
34 changed files with 1231 additions and 286 deletions

View File

@@ -0,0 +1,75 @@
# Атрибут `IgnoredInDB`
Атрибут `IgnoredInDB` предназначен для указания, что определенное свойство модели данных должно игнорироваться при
выполнении определенных операций с базой данных. Это позволяет исключить поля из операций вставки, обновления, чтения и
других действий, что может быть полезно для оптимизации производительности или соблюдения особых правил доступа к
данным.
## Основное назначение
Атрибут используется для того, чтобы обозначить, какие операции с базой данных не должны затрагивать конкретное поле
модели. Например, вы можете захотеть исключить временную отметку создания записи из операций обновления, так как она
должна оставаться постоянной.
## Пример использования атрибута
Допустим, у вас есть модель данных, описывающая заказ, и вы хотите, чтобы поле с временной отметкой создания заказа не
обновлялось после первого внесения:
```php
use goodboyalex\php_db_components_pack\attributes\IgnoredInDB;
use goodboyalex\php_db_components_pack\enums\DBOperation;
final class Order
{
#[IgnoredInDB(DBOperation::Update)]
private DateTimeImmutable $CreatedAt;
// Остальные поля и геттеры/сеттеры...
}
```
В данном примере атрибут `#[IgnoredInDB]` применяется к полю `$CreatedAt`, явно указывая, что оно должно игнорироваться
при операции обновления.
**ВАЖНО!** Если атрибут задан, но не заданы операции:
```php
use goodboyalex\php_db_components_pack\attributes\IgnoredInDB;
use goodboyalex\php_db_components_pack\enums\DBOperation;
final class Order
{
#[IgnoredInDB]
private DateTimeImmutable $CreatedAt;
// Остальные поля и геттеры/сеттеры...
}
```
В этом случае атрибут будет **проигнорирован во ВСЕХ операциях**.
## Пространство имён
Атрибут объявлен в пространстве имён:
```php
namespace goodboyalex\php_db_components_pack\attributes;
```
## Версии и автор
- **Автор**: Александр Бабаев
- **Версия**: 1.0
- **Дата выпуска**: с версии 1.0
## Особенности
- **Применяется только к полям (properties)** Атрибут используется исключительно для аннотирования полей классов, которые соответствуют столбцам базы данных.
## Когда использовать атрибут?
Атрибут `IgnoredInDB` полезен, когда необходимо исключить поле из некоторых операций с базой данных. Например, это может
потребоваться для защиты временных отметок, исключения виртуальных полей или улучшения производительности запросов.
[На главную](../../index.md)