Open Source/plain-to-class/Использование/Коллекция
Коллекция
Если у вас есть массив объектов определённого класса, то вы должны указать для него атрибут ConvertArray, передав ему, в какой класс нужно привести элементы.
Также можно указать класс в PHP DOC, но тогда нужно написать полный путь к этому классу array<\DTO\ProductDTO>. Это делается для того, чтобы точно знать, какой экземпляр нужно создать, поскольку Reflection не предоставляет готовых функций для получения файла use. Помимо use, можно указать псевдоним, и его будет сложнее отследить.
Пример:
class ProductDTO{ public int $id; public string $name;}
class PurchaseDTO{ #[ConvertArray(ProductDTO::class)] public array $products;}
$data = [ 'products' => [ ['id' => 1, 'name' => 'phone'], ['id' => 2, 'name' => 'bread'], ],];$purchaseDTO = Hydrator::init()->create(PurchaseDTO::class, $data);