3
respostas

Autoload

Entendi o contexto, porém aqui não acha a classe que está em uma subpasta. https://ibb.co/ZcWm0Lr coloquei o link para ver a imagem, se eu usar o require apronto para o arquivo que está a classe funciona, mas se eu apontar para o autoload ele nao localiza a classe, sabe me dizer qual erro estou comentendo?

3 respostas

Olá Thiago,

Testa essas alterações por favor:

  1. Move os arquivos index.php e autoload.php para fora da pasta src, devem ficar na pasta Arrays ao lado da pasta src
  2. Modifica o namespace na classe ArrayUtils para Services e coloca o nome da pasta como Services também ("S" maiúsculo)
  3. Modifica o use ArrayUtils; no index para use Services\ArrayUtils; para ficar de acordo com a alteração acima

Me diz se isso resolve, fico no aguardo!

Se ainda tiver algum problema compartilha o seu projeto completo por favor, pode ser pelo github, google drive, dropbox, etc..

Olá meu amigo. Realizei as modificações informadas, porém ainda não localiza a classe informada. Acredito que seja apenas organização dos arquivos nas pastas mesmo, pois baixei o projeto e rodou. Compartilhei o projeto no Git: https://github.com/thiago-bento/out Obs: Utilizo o Ubuntu. Grato pela ajuda.

Ah Thiago, encontrei alguns problemas.

Primeiro o nome do arquivo está diferente do nome da classe, o arquivo é ArraysUtils e a classe é ArrayUtils, deixa o nome do arquivo igual ao nome da classe.

Outro detalhe é o namespace que está com informação extra, você não precisa colocar o nome da classe no namespace. Então dentro de ArrayUtils.php faz essa mudança:

// Antes
namespace Services\ArrayUtils;;

// Correto
namespace Services;

Apenas na hora de importar a classe, no use por exemplo, que você coloca tudo namespace + classe

Espero ter ajudado, qualquer dúvida é só falar!