<?php
namespace Alura\Banco\Modelo;
use Exception;
class ValidacaoCpfException extends Exception
{
public function __construct()
{
$cpf = false;
$mensagem = "O CPF precisa ser do formato válido: 123.456.789-10";
parent::__construct($mensagem);
}
}
Arquivo CPF:
namespace Alura\Banco\Modelo;
final class CPF
{
private $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 ValidacaoCpfException();
}
$this->numero = $numero;
}
public function recuperaNumero(): string
{
return $this->numero;
}
}
Arquivo Teste:
<?php
use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\ValidacaoCpfException;
require "autoload.php";
try{
$novoCpf = new CPF('12355152245555');
}catch(ValidacaoCpfException $exception){
echo $exception->getMessage().PHP_EOL;
}