Новая версия гидратора DTO для PHP
Сегодня вышел релиз версии 2.0 пакета ClassTransformer.
Эта библиотека позволяет легко преобразовать любой набор данных в нужный вам объект. Вам не нужно менять структуру классов, наследовать их от внешних модулей и т.д. Никаких танцев с бубном — просто данные и нужный класс.
Базовое использование:

Что изменилось в 2.0
1. Alias
Добавлена поддержка алиасов для свойств. Это может быть полезно, когда данные приходят из разных источников.

2. Mutator для setter
Если поле требует дополнительной обработки при инициализации, можно сделать mutator — метод set{Attribute}Attribute в вашем классе, где {Attribute} — имя свойства в camelCase.

3. afterTransform
Иногда нужно выполнить пост-проверку консистентности данных или просто вывести лог. Метод afterTransform будет вызван после преобразования объекта.

4. Поддержка enum из PHP 8.1+

5. transformCollection
Добавлен метод transformCollection для корректного преобразования коллекций.

6. Рефакторинг кода
Рефакторинг позволил получить значительное ускорение.

Сравнение
Также был проведён анализ текущих аналогичных решений. К сожалению, некоторые пакеты заставляют разработчика наследовать классы от своих интерфейсов, чего мне бы очень не хотелось. Некоторые диктуют свою структуру классов, что также влечёт за собой изменения в уже сложившейся структуре. Также есть много решений, реализованных под конкретный фреймворк, и нет возможности нормально переиспользовать их в другом стеке.
Ниже — сравнение скорости с ближайшими конкурентами моего пакета.

Исходники моего сравнения опубликованы на github: