Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Se eu fosse criar um validaCPF()?

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?

2 respostas
solução!

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.