¿Qué es un DTO?
Un DTO (data transfer object u objeto de transferencia de datos) es un objeto de solo tipo lectura y en el que sus atributos deben ser primitivos. Esto es así porque necesitamos que sean serializables, ya que puede ser que necesitamos enviarlo a una cola de Kafka, RabbitMQ, Redis, a una API, etc.
Ejemplo de una clase DTO en PHP:
final class GetUsersQuery
{
public function __construct(
private ?string $orderBy = null,
private ?string $order = null,
private ?array $filters = null,
private ?int $limit = null,
private ?int $offset = null
)
{
}
public function orderBy(): ?string
{
return $this->orderBy;
}
public function order(): ?string
{
return $this->order;
}
public function filters(): ?array
{
return $this->filters;
}
public function limit(): ?int
{
return $this->limit;
}
public function offset(): ?int
{
return $this->offset;
}
}