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

[Projeto] Solução do desafio classe Cpf.

Minha solução do desafio para criar uma classe Cpf, onde coloquei uma verificação superficial de exemplo.

<?php

class Cpf {
    public readonly string $cpf;

    public function __construct(string $cpf)
    {
        $this -> validaCpf($cpf);
        $this -> cpf = $cpf;
    }


    private function validaCpf(string $cpf): void {
        if(strlen($cpf) < 11){
            echo "CPF inválido";
            exit();
        }
    }
}

/**
 * Neste código abaixo é o código do arquivo Conta.php para mostrar o exemplo de como utilizei. 
 * Sendo que estamos no php 8.3.
 */

<?php

require_once './src/Conta.php';
require_once './src/Titular.php';
require_once './src/Cpf.php';


$viniciusCpf = new Cpf('123.123.321-12');
$vinicius = new Titular("Vinicius H", $viniciusCpf);

$conta01 = new Conta($vinicius);
$conta01 -> depositar(2000);

echo $conta01 -> titular -> nome . PHP_EOL;
echo $conta01 -> titular -> cpf -> cpf . PHP_EOL;
echo $conta01 -> getExtrato() . PHP_EOL;

var_dump($conta01);

echo Conta::getContas();
2 respostas
solução!

Oii, Vinicius. Blz?

Parabéns pela resolução! Ficou bem legal :)

Como sugestão, você pode adicionar no seu código, o lançamento de uma exceção caso a verifição do cpf não fosse válida:

private function validaCpf(string $cpf): void {
    if (strlen($cpf) < 11) {
        throw new InvalidArgumentException("CPF inválido");
    }
}

Isso é uma boa prática, pois fornece informações claras sobre o tipo de problema que ocorreu.

Espero ter ajudado e bons estudos :)

Top essa sugestão, obrigado.