20250807
This commit is contained in:
75
help/class_desc/attributes/IgnoredInDB.md
Normal file
75
help/class_desc/attributes/IgnoredInDB.md
Normal 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)
|
Reference in New Issue
Block a user