2
respostas

Não encontrado o diretório Class 'App\Alura\Usuario'

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAcredito que o meu prefixo não esta conseguindo encontrar o diretório até o arquivo Cadastro.php

<?php

spl_autoload_register(function($classe) {

  $prefixo = "App\\";
  $diretorio = __DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR;

  if(strncmp($prefixo, $classe, strlen($prefixo)) !== 0) {
    return;
  };

  $namespace = substr($classe, strlen($prefixo));

  $namespace_arquivo = str_replace('\\', DIRECTORY_SEPARATOR, $namespace);

  $arquivo = $diretorio . $namespace_arquivo . '.php';

  if(file_exists($arquivo)) {
    return $arquivo;
  }

});
2 respostas

Boa noite Daniel,

Creio que o problema não esteja no seu autoload. Pelo erro ele disse que a class Usuário não foi encontrado no arquivo cadastro.php. O que pode estar ocasionando esse problema é não ter carregado o arquivo do autoload no cadastro.php

Inclui no inicio do arquivo cadastro.php:

require_once 'autoload.php';

Boa noite Daniel, tudo bem?

Houve uma alteração no arquivo autoload.php da aula 2 para a aula 3. Tenta substituir pelo código abaixo e rode novamente, aqui deu certo!

<?php

spl_autoload_register(function ($classe) {

    $prefixo = "App\\";

    $diretorio = __DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR;

    if (strncmp($prefixo, $classe, strlen($prefixo)) !== 0) {
        return;
    }

    $namespace = substr($classe, strlen($prefixo));

    $namespace_arquivo = str_replace('\\', DIRECTORY_SEPARATOR, $namespace);

    $arquivo = $diretorio . $namespace_arquivo . '.php';

    if (file_exists($arquivo)) {
        require $arquivo;
    }
});