# Атрибут `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)