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