Olá, Anderson. Tudo bem?
O arquivo autoload.php
não está conseguindo localizar suas classes, pois você está chamando o autoload.php
dentro da pasta controller
, e o autoload que construímos no curso, foi desenvolvido para ser chamado em um arquivo na pasta raiz.
Quando você usa o require
é como se você estivesse pegando todo o conteúdo do autoload.php
e colando no arquivo index.php
que está localizado dentro da pasta controller
.
Porém, quando você vai usar o require para importar uma classe dessa maneira, a string do $caminhoArquivo
ficará da seguinte maneira no arquivo index.php
:
require_once "src\Modelo\Teste.php"
Dessa forma não está correto, para contornar isso, devemos voltar um diretório e no autoload.php
ter um código semelhante a este:
<?php
spl_autoload_register(function (string $nomeCompletoDaClasse) {
$caminhoArquivo = str_replace('Teste\\Projeto', 'src', $nomeCompletoDaClasse);
$caminhoArquivo = str_replace('\\', DIRECTORY_SEPARATOR, $caminhoArquivo);
$caminhoArquivo .= '.php';
$caminhoArquivo = "../" . $caminhoArquivo;
if (file_exists($caminhoArquivo)) {
require_once $caminhoArquivo;
}
});
De uma maneira semelhante ao código acima, creio que irá funcionar.
Espero ter ajudado, bons estudos :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓