Olá, estou enfrentando uma dificuldade em meu código onde eu declaro o namespace e quando eu utilizo o use ele não encontra a classe, se necessitar de outra parte do código eu disponibilizo
Teste.php
<?php
require_once 'autoload.php';
use Prj\Teste\Modelo\Cliente;
use Prj\Teste\Modelo\Funcionario;
use Prj\Teste\Modelo\Cpf;
$cliente = new Cliente('Diego Redi', new Cpf('123.456.789-10'), '147258369');
$funcionario = new Funcionario('Diego Redi', new Cpf('987.654.321-01'), 'Desenvolvedor');
var_dump($cliente);
var_dump($funcionario);
Cliente.php
<?php
namespace Prj\Teste\Modelo;
class Cliente extends Pessoa
{
private $numeroConta;
public function __construct(string $nome, CPF $cpf, string $numeroConta)
{
parent::__construct($nome, $cpf);
$this->numeroConta = $numeroConta;
}
public function getNumeroConta(): string
{
return $this->numeroConta;
}
public function setNome(string $nome): void
{
$this->validaNome($nome);
$this->nome = $nome;
}
}
autoload.php
<?php
spl_autoload_register(function (string $nomeCompletoDaClasse)
{
$caminhoArquivo = str_replace('prj\\teste', 'src', $nomeCompletoDaClasse);
$caminhoArquivo = str_replace('\\', DIRECTORY_SEPARATOR, $caminhoArquivo);
$caminhoArquivo .= ".php";
if(file_exists($caminhoArquivo)){
require_once $caminhoArquivo;
}
});