20250730
This commit is contained in:
45
sources/attributes/ConvertToDB.php
Normal file
45
sources/attributes/ConvertToDB.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
/**
|
||||
* Отключаю несущественные инспекции (из-за Attribute)
|
||||
*
|
||||
* @noinspection PhpMultipleClassDeclarationsInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\attributes;
|
||||
|
||||
use Attribute;
|
||||
use Closure;
|
||||
|
||||
/**
|
||||
* Атрибут указания методов конвертации из/в тип для заполнения таблицы базы данных.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
|
||||
final readonly class ConvertToDB
|
||||
{
|
||||
/**
|
||||
* @var Closure|null Метод конвертации из типа для заполнения таблицы базы данных.
|
||||
*/
|
||||
public ?Closure $ConvertToDB;
|
||||
|
||||
/**
|
||||
* @var Closure|null Метод конвертации в тип для заполнения таблицы базы данных.
|
||||
*/
|
||||
public ?Closure $ConvertFromDB;
|
||||
|
||||
/**
|
||||
* Конструктор.
|
||||
*
|
||||
* @param callable|null $fromType Метод конвертации из типа для заполнения таблицы базы данных.
|
||||
* @param callable|null $toType Метод конвертации в тип для заполнения таблицы базы данных.
|
||||
*/
|
||||
public function __construct (?callable $fromType = null, ?callable $toType = null)
|
||||
{
|
||||
$this->ConvertToDB = $fromType;
|
||||
$this->ConvertFromDB = $toType;
|
||||
}
|
||||
}
|
47
sources/attributes/IgnoredInDB.php
Normal file
47
sources/attributes/IgnoredInDB.php
Normal 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);
|
||||
}
|
||||
}
|
29
sources/attributes/PrimaryKey.php
Normal file
29
sources/attributes/PrimaryKey.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Отключаю несущественные инспекции (из-за Attribute)
|
||||
*
|
||||
* @noinspection PhpMultipleClassDeclarationsInspection
|
||||
*/
|
||||
|
||||
namespace goodboyalex\php_db_components_pack\attributes;
|
||||
|
||||
use Attribute;
|
||||
|
||||
/**
|
||||
* Атрибут указания, что параметр является первичным ключом таблицы.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_db_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.0
|
||||
*/
|
||||
#[Attribute(flags: Attribute::TARGET_PROPERTY)]
|
||||
final readonly class PrimaryKey
|
||||
{
|
||||
/**
|
||||
* Конструктор
|
||||
*/
|
||||
public function __construct ()
|
||||
{
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user