1
resposta

Desafio ValidaCpf e ValidaNome

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)ノ ✯*✯

1 resposta

Oi, Caroline! Tudo bem?

Desculpa a demora por um retorno.

Parabéns pela elaboração das soluções para o desafio, é muito bom poder acompanhar a sua evolução e desempenho!

Deixo como sugestão apenas alterar o tipo do parâmetro $nomeTitular no arquivo ValidaNomeException.php de int para o tipo string, alteração necessária para que o parâmetro $nomeTitular possa receber corretamente um valor de texto (nome) e não um valor de número inteiro.

Ademais, caso haja alguma dúvida em relação a algum conteúdo do curso ou atividade, sinta-se à vontade para comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software