3.7 KiB
Атрибут IgnoredInDB
Атрибут IgnoredInDB
предназначен для указания, что определенное свойство модели данных должно игнорироваться при
выполнении определенных операций с базой данных. Это позволяет исключить поля из операций вставки, обновления, чтения и
других действий, что может быть полезно для оптимизации производительности или соблюдения особых правил доступа к
данным.
Основное назначение
Атрибут используется для того, чтобы обозначить, какие операции с базой данных не должны затрагивать конкретное поле модели. Например, вы можете захотеть исключить временную отметку создания записи из операций обновления, так как она должна оставаться постоянной.
Пример использования атрибута
Допустим, у вас есть модель данных, описывающая заказ, и вы хотите, чтобы поле с временной отметкой создания заказа не обновлялось после первого внесения:
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
, явно указывая, что оно должно игнорироваться
при операции обновления.
ВАЖНО! Если атрибут задан, но не заданы операции:
use goodboyalex\php_db_components_pack\attributes\IgnoredInDB;
use goodboyalex\php_db_components_pack\enums\DBOperation;
final class Order
{
#[IgnoredInDB]
private DateTimeImmutable $CreatedAt;
// Остальные поля и геттеры/сеттеры...
}
В этом случае атрибут будет проигнорирован во ВСЕХ операциях.
Пространство имён
Атрибут объявлен в пространстве имён:
namespace goodboyalex\php_db_components_pack\attributes;
Версии и автор
- Автор: Александр Бабаев
- Версия: 1.0
- Дата выпуска: с версии 1.0
Особенности
- Применяется только к полям (properties) Атрибут используется исключительно для аннотирования полей классов, которые соответствуют столбцам базы данных.
Когда использовать атрибут?
Атрибут IgnoredInDB
полезен, когда необходимо исключить поле из некоторых операций с базой данных. Например, это может
потребоваться для защиты временных отметок, исключения виртуальных полей или улучшения производительности запросов.