Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Require não funciona.

Boa noite, este problema não esta relacionado a nenhum curso da Alura, porém não achei nada falando sobre o erro e não consegui resolve-lo, se alguém puder me ajudar, ficarei grato!

Estou tentando fazer alguns require, mas por algum motivo o PHP não esta identificando onde estão os arquivos. Porém isso não acontece diretamente no arquivo que estou fazendo o require, mas sim, no require do require kkkk.

(Ele não identifica onde está o arquivo do require em connection.php, quando faço o require no index.php)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O problema esta no arquivo index.php que esta no lado esquerdo.

Quando faço o require ele não reconhece o require do arquivo que esta na direita: connection.php; Que é a conexão com o bando de dados, e essa conexão esta funcionando, pois consigo usa-la normalmente em outro arquivo: insertCard.php, que esta localizado na mesma pasta que o arquivo de conexão, como pode ser visto no lado esquerdo do VS Code, onde esta toda a estrutura do projeto.

Este é o erro que aparece no browser logo que tento carregar a página:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não consegui entender o que aconteceu.

2 respostas

Olá, ST4R_LORD. Tudo bem?

Analisando o seu projeto pelas imagens, acredito que o arquivo index.php está dentro da pasta src, logo você teria que passar o seguinte caminho para o require_once do index.php:

require_once("controllers/connection.php");

Esse erro está acontecendo porque o arquivo index.php que já está localizado dentro da pasta src, o PHP está procurando outra pasta src dentro de src conforme o endereço que você tinha passado:

require_once("src/controllers/connection.php");

Espero ter ajudado!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓
solução!

Na verdade o index.php esta fora de qualquer pasta. (Esta dentro somente da pasta raiz). A estrutura do projeto esta dessa forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Consegui resolver o problema definindo caminhos absolutos, usando: realpath($_SERVER["DOCUMENT_ROOT"])

E o código final ficou dessa forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Agora estou procurando uma forma de definir este realpath() Globalmente, para que caso eu altere algum caminho, eu não tenha de alterar em todos os arquivos.

Até o momento acho que resolvi o problema, e tudo esta funcionando como quero.

Obs: Resolvi o problema com este post no Stackoverflow com uma pergunta que fiz no Discord da Alura: Making PHP Includes Work in a Sub-directory