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;
 | 
						|
    }
 | 
						|
}
 |