2025-08-02 21:20:32 +03:00

52 lines
1.9 KiB
PHP

<?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;
/**
* @var Closure|null Метод сравнения типов.
*/
public ?Closure $Compare;
/**
* Конструктор.
*
* @param callable|null $fromType Метод конвертации из типа для заполнения таблицы базы данных.
* @param callable|null $toType Метод конвертации в тип для заполнения таблицы базы данных.
* @param callable|null $compare Метод сравнения типов.
*/
public function __construct (?callable $fromType = null, ?callable $toType = null, ?callable $compare = null)
{
$this->ConvertToDB = $fromType;
$this->ConvertFromDB = $toType;
$this->Compare = $compare;
}
}