4.1 KiB
Атрибут ConvertToDB
Атрибут ConvertToDB
предназначен для настройки процесса преобразования значений при взаимодействии с базой данных. Он
позволяет задать специальные методы для преобразования данных между внутренним представлением и формой, подходящей для
сохранения в базе данных.
Основное назначение
Атрибут позволяет настроить индивидуальные процедуры для преобразования данных, поступающих из базы данных и обратно. Часто бывает необходимо изменять формат данных при передаче их между слоями приложения и хранилищем, например, преобразовать JSON в объект или нормализовать строку для хранения в определенном формате.
Синтаксис использования
Атрибут принимает два параметра:
- fromType - определение конвертации из БД (может быть строкой, массивом или
null
). По умолчанию,null
. - toType - определение конвертации в БД (может быть строкой, массивом или
null
). По умолчанию,null
.
Примеры использования
Пример 1: Использование строковых вызовов
use goodboyalex\php_db_components_pack\attributes\ConvertToDB;
use goodboyalex\php_db_components_pack\attributes\DataType;
use goodboyalex\php_db_components_pack\enums\DBType;
final class Product
{
#[ConvertToDB(
'App\Converters\JsonConverter::decode',
'App\Converters\JsonConverter::encode'
)]
public array $MetaData;
}
Пример 2: Использование массивов для вызова методов
final class Product
{
#[ConvertToDB(
['App\Converters\DateConverter', 'convertToInternal'],
['App\Converters\DateConverter', 'convertToDB']
)]
public string $created_at;
}
Параметры атрибута
- fromType (string|array|null) - определение конвертации из БД
- Строка: имя статического метода
- Массив: [класс, метод]
- toType (string|array|null) - определение конвертации в БД
- Строка: имя статического метода
- Массив: [класс, метод]
Пространство имён
Атрибут объявлен в пространстве имён:
namespace goodboyalex\php_db_components_pack\attributes;
Версии и автор
- Автор: Александр Бабаев
- Версия: 1.0
- Дата выпуска: с версии 1.0
Особенности
- Атрибут применяется только к свойствам класса
- Поддерживает два формата определения конвертаций
- Автоматически создаёт замыкания на основе переданных данных
- Позволяет использовать любые статические методы для конвертации
Когда использовать атрибут?
Атрибут ConvertToDB
пригодится, когда возникает необходимость нестандартного преобразования данных. Например, если вы
работаете с JSON-данными, XML-документами или бинарными изображениями, и нужно аккуратно сохранять и извлекать эти
данные из базы данных.