1
resposta

PHP COM ERRO FALTA NA CLASS PESSOA

Seguindo a mesma base da estrutura descrita no vídeo, ao rodar o "php banco.php" tenho o retorno de erro abaixo Erro no terminal do PHPSTORM - Uncaught Error: Class "ALura\Banco\src\modelo\Pessoa not found in /home/luan/Documentos/projeto/src/Modelo/Conta/Titular.php:10

Meu código Pessoa.php está assim

<?php

namespace Alura\Banco\src\Modelo\Pessoa;

class Pessoa
{
    protected $nome;
    private CPF $cpf;

    public function __construct(string $nome, CPF $cpf)
    {
        $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();
        }
    }
}

Meu código Titular está assim:

<?php

namespace Alura\Banco\Modelo\Conta;

use Alura\Banco\src\Modelo\Pessoa;
use Alura\Banco\Modelo\CPF;
use Alura\Banco\Modelo\Endereco;


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;
    }

}

Segue abaixo a estrutura das pastas Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Uander, você colocou o namespace da classe Pessoa errado.

Você definiu o namespace como Alura\Banco\src\Modelo\Pessoa.

Isso faz com que o nome completo da classe seja: Alura\Banco\src\Modelo\Pessoa\Pessoa.

Além de ter adicionado o nome da classe ao namespace, você também adicionou src ao namespace. Isso vai contra o padrão que temos seguido até aqui no treinamento.