Não estou conseguindo identificar o erro no meu código. Pode me ajudar?
Erro:
/bin/php /home/satellitus/Documentos/php-primeiros-passos1/banco.php PHP Fatal error: Uncaught Error: Class 'Andrew\banco\Modelo\Pessoa' not found in /home/satellitus/Documentos/php-primeiros-passos1/src/Modelo/Conta/Titular.php:9 Stack trace:
#0 /home/satellitus/Documentos/php-primeiros-passos1/banco.php(11): require_once()
#1 [internal function]: {closure}()
#2 /home/satellitus/Documentos/php-primeiros-passos1/banco.php(24): spl_autoload_call()
#3 {main} thrown in /home/satellitus/Documentos/php-primeiros-passos1/src/Modelo/Conta/Titular.php on line 9
Process finished with exit code 255
Classe Titular:
namespace Andrew\banco\Modelo\Conta;
use Andrew\banco\Modelo\CPF; use Andrew\banco\Modelo\Endereco; use Andrew\banco\Modelo\Pessoa;
class Titular extends Pessoa { private $endereco;
public function __construct(CPF $cpf, string $nome, Endereco $endereco)
{
parent::__construct($nome, $cpf);
$this->endereco = $endereco;
}
public function recuperaEndereco(): Endereco
{
return $this->endereco;
}
}
Classe Pessoa:
namespace Andrew\banco\Modelo;
class Pessoa { protected $nome; private $cpf;
public function __construct(string $nome, CPF $cpf)
{
$this->validaNomeTitular($nome);
$this->nome = $nome;
$this->cpf = $cpf;
}
public function recuperaNome(): string
{
return $this->nome;
}
public function recuperaCpf(): string
{
return $this->cpf->recuperaNumero();
}
protected function validaNomeTitular(string $nomeTitular)
{
if (strlen($nomeTitular)< 5) {
echo "Nome precisa ter pelo menos 5 caracteres";
exit();
}
}
}
banco.php:
spl_autoload_register(function (string $nomeCompletoDaClasse) { $caminhoArquivo = str_replace('Andrew\Banco', 'src', $nomeCompletoDaClasse); $caminhoArquivo = str_replace('\', DIRECTORY_SEPARATOR, $caminhoArquivo); $caminhoArquivo .= '.php';
if (file_exists($caminhoArquivo)) {
require_once $caminhoArquivo;
}
});
use Andrew\Banco\Modelo\Conta\Titular; use Andrew\Banco\Modelo\CPF; use Andrew\Banco\Modelo\Endereco; use Andrew\Banco\Modelo\Conta\Conta;
$endereco = new Endereco('Jundiaí', 'Jd Pitangueiras 2', 'Oswaldo de Andrade', '240'); $Bruno = new Titular(new CPF('123.456.789-12'), 'Andrew Souza', $endereco); $primeiraConta = new Conta($Bruno); $primeiraConta->depositar(500); $primeiraConta->sacar(300);// isso é ok
echo $primeiraConta->recuperaNomeTitular() . PHP_EOL; echo $primeiraConta->recuperaCpfTitular() . PHP_EOL; echo $primeiraConta->recuperarSaldo() . PHP_EOL;
$Kelly = new Titular(new CPF('987.654.321-10'), 'Kelly', $endereco); $segundaConta = new Conta($Kelly); var_dump($segundaConta);
$outroEndereco = new \Andrew\banco\Modelo\Endereco('Jundiaí', 'Vila Rami', 'José bedendo', '254'); $outra = new Conta(new Titular(new CPF('123.123.123-12'), 'Beles', $outroEndereco)); unset($outra); echo "Saldo de Contas ativas no sistema é de: " . Conta::recuperaNumeroDeContas();