33 lines
722 B
PHP
33 lines
722 B
PHP
|
<?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;
|
||
|
}
|
||
|
}
|