<?php declare(strict_types=1); namespace App\Dto\User; use App\Exceptions\Dto\User\ManyRoleDtoException; final class ManyRoleDto { private array $roles = []; public function __construct(array $roles = []) { foreach ($roles as $role) { if (!is_numeric($role) || is_float($role)) { throw new ManyRoleDtoException('Not an integer: ' . $role . '.'); } $this->add((int) $role); } } public function add(int $id): void { if ($id < 1) { throw new ManyRoleDtoException('Only Integer > 0.'); } $this->roles[] = $id; } public function toArray(): array { return $this->roles; } }