Seguindo esse raciocínio de métodos privados, seria legal isso para validar cpf do titular da conta também? Ou a validação seria uma função externa a parte para utilizar um RegEx por exemplo?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Seguindo esse raciocínio de métodos privados, seria legal isso para validar cpf do titular da conta também? Ou a validação seria uma função externa a parte para utilizar um RegEx por exemplo?
Olá, Felipe. Seria muito legal validar o CPF, mas um método validaCpf não seria o melhor cenário.
O ideal mesmo seria você criar uma nova classe que representa o CPF, e nela você teria a validação.
Exemplo fictício:
<?php
class Cpf
{
private string $numeroCpf;
public function __construct(string $numeroCpf)
{
$this->defineCpf($numeroCpf);
}
private function defineCpf(string $numeroCpf): void
{
$cpfValidado = filter_var(
$numeroCpf,
FILTER_VALIDATE_REGEXP,
[
'options' => [
'regexp' => '/^\d{3}\.\d{3}\.\d{3}\-\d{2}$/'
]
]
);
if ($cpfValidado === false) {
echo "CPF inválido";
exit();
}
$this->numeroCpf = $cpfValidado;
}
public function recuperaNumeroCpf(): string
{
return $this->numeroCpf;
}
}E aí, ao invés de receber uma string como $cpfTitular, você receberia um objeto do tipo Cpf, entendeu?
:-D
Repara que eu extraí o método privado defineCpf para não deixar meu construtor com muito código. Essa é uma das principais funcionalidades de métodos privados: Extrair métodos auxiliares para tornar o código mais legível.
A muito obrigado, eu percebi que nas aulas seguintes você fez essa opção de criar uma classe. Entendi.