Para validar o cpf
Cpf.php
public function __construct(string $numero)
{
$numero = filter_var($numero, FILTER_VALIDATE_REGEXP, [
'options' => [
'regexp' => '/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$/'
]
]);
if ($numero === false) {
throw new \InvalidArgumentException();
exit();
}
$this->numero = $numero;
}
Para validar o nome ValidaNomeException.php
class ValidaNomeException extends \DomainException
{
public function __construct(int $nomeTitular)
{
$mensagem = "Inserir um nome válido. ". PHP_EOL;
parent::__construct($mensagem);
}
}
Pessoa.php
final protected function validaNome(string $nomeTitular)
{
if(strlen($nomeTitular)<5){
throw new ValidaNomeException($nomeTitular);
}
}
Arquivo final
try{
$contaCorrente = new ContaCorrente(
new Titular(
new CPF('123.456.789-10'),
'Dias',
new Endereco ('Cidade', 'bairro', 'rua', 'numero')
)
);
try{
$contaCorrente->deposita(100);
}catch (InvalidArgumentException $exception){
echo "Valor a depositar precisa ser positivo!". PHP_EOL;
}
} catch (InvalidArgumentException| ValidaNomeException $exception){
echo "Adicionar argumento valido!". PHP_EOL;
echo $exception->getMessage(). PHP_EOL;
}
ヽ(o^▽^o)ノ ✯*✯✯