Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio Exceções de Validação - CPF

Segue a implementção que fiz usando a InvalidArgumentException para tratar o CPF inválido. Caso tenha alguma coisa para melhorar comentem:

Classe CPF:

<?php

namespace Alura\Banco\Modelo;

use http\Exception\InvalidArgumentException;

final class CPF
{
    private string $numero;

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

        $this->numero = $numero;
    }

    public function recuperaNumeroCPF(): string
    {
        return $this->numero;
    }
}

Aquivo de Teste:

<?php

use Alura\Banco\Modelo\CPF;

require_once 'autoload.php';

try {
    $cpf = new CPF("123.456.789.10");
} catch (InvalidArgumentException $exception) {
    echo "CPF inválido. Informe um CPF no formato 000.000.000-00.";
}
1 resposta
solução!

Show de bola, Rafael. Exatamente como eu faria.