This commit is contained in:
2025-07-30 18:33:02 +03:00
parent 8436569ce5
commit 45fb57981d
7 changed files with 323 additions and 159 deletions

View File

@@ -0,0 +1,47 @@
<?php
/**
* Отключаю несущественные инспекции (из-за Attribute)
*
* @noinspection PhpMultipleClassDeclarationsInspection
*/
namespace goodboyalex\php_db_components_pack\attributes;
use Attribute;
use goodboyalex\php_components_pack\classes\ObjectArray;
use goodboyalex\php_db_components_pack\enums\DBOperation;
/**
* Атрибут указывающий, что свойство должно игнорироваться при операции с БД.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
final readonly class IgnoredInDB
{
/**
* @var ObjectArray Игнорируемые операции.
*/
public ObjectArray $IgnoredOperations;
/**
* Конструктор.
*
* @param DBOperation ...$ignoredOperations Список операций, которые игнорируем.
*/
public function __construct (DBOperation ...$ignoredOperations)
{
// Если не указаны операции
if (count($ignoredOperations) === 0)
// - то по умолчанию игнорируем все операции
$ignoredOperations = [
DBOperation::Insert, DBOperation::Get, DBOperation::Update, DBOperation::Delete, DBOperation::Count
];
// Инициализируем массив
$this->IgnoredOperations = new ObjectArray($ignoredOperations);
}
}