53 lines
1.9 KiB
PHP
53 lines
1.9 KiB
PHP
<?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,
|
||
DBOperation::CreateTable,
|
||
DBOperation::DropTable
|
||
];
|
||
|
||
// Инициализируем массив
|
||
$this->IgnoredOperations = new ObjectArray($ignoredOperations);
|
||
}
|
||
} |