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

PHP Fatal error: Uncaught Error: Class

Então, a poucos dias participei de um forum em busca de tirar uma dúvida referente a este mesmo assunto mas como não era meu a discussão eu preferi me abster e resolver sozinho, porém já estou a 2 dias (6hrs cada) tentando e tentando e não cheguei a nenhuma conclusão, (Estou a cara do desespero). Tentei diversas soluções e parti para o básico, fiz uma pasta com apenas um arquivo.php, e a minha classe dentro da pasta src, disposta da seguinte maneira:

##Essa pasta com esses arquivos foi criada apenas com o intuíto de localizar o erro, estava fazendo o exercício da aula de tratamente de erro deste curso##

├── teste.php
├── composer.json
├── composer.lock
└── vendor
    ├── autoload.php
    ├── composer
└── src
    ├── User.php

Testei inclusive essa classe com construct, sem, tirando namespace, utilizando comandos do composer (init, update, composer dumpautoload, composer dumpautoload -o, composer dump-autoload -o, instalei e desinstalei o composer, voltei e reassisti os primeiros módulos do curso de composer e nada..... Obs1: Em nenhum momento que eu tentei, o composer sequer incluiu dentro do arquivo autoload_classmap.php as minhas classes. Obs2, no início do curso, estava funcionando perfeitamente, eu instanciava objetos, fazia persistencia no sqlite, retirava dados baseado em id, fiz diversas querys, prepare stmt, etc, e depois começou a esse problema ocorrer, agora, nem algo simples assim está rodando, SOS. Algum dos Vinicios, Help ;-; (As imagens seguem a fio, de agora):

https://i.im.ge/2024/01/17/Yddig1.cmdComandosComposerPastaProjeto.png

https://i.im.ge/2024/01/17/Yddh0P.composerClassMap.png

https://i.im.ge/2024/01/17/YddUlp.ArquivoTestequeChamaClasse.png

https://i.im.ge/2024/01/17/YddIVq.ClasseUser.png

13 respostas

o COMPOSER.JSON E O COMPOSER.LOCK https://i.im.ge/2024/01/17/Yd7zWC.composer-lock.png

https://i.im.ge/2024/01/17/Yd7poq.jasonarquivo.png

Igor, tudo bem?

Ao meu ver o erro está em como você está definindo o namespace das suas classes.

Na classe User você usou o namespace: igorcardoso\projetopessoal. Mas no composer.json, você definiu de forma diferente.

Você deveria usar o namespace na classe User assim, da mesma forma que definiu no composer.json:

use namespace Igor\Cardoso

Dá uma olhada nesse capitulo aqui, vai te ajudar:

https://cursos.alura.com.br/course/php-composer/task/56140

Perfeito! Caraca, pra mim que poderíamos utilizar qualquer namespace antes do scr que iria funcionar, aprendi errado, pelo o menos massifiquei vários comandos em composer e afins kkkkk Só, surgiu outra situação agora Vinícius ;-;

https://i.im.ge/2024/01/18/Yq1RmL.classeCriadorConexao.png

https://i.im.ge/2024/01/18/Yq18Oc.novoerrodriver.png

Essa mensagem de driver não é referente aquilo lá do início de descomentar as linhas extension_dir = "ext" e extension=pdo_sqlite?

Isso, exatamente. Você já fez isso?

Se sim, e continua dando erro. Abre o terminal e digita 'php --ini', que vai mostrar a localização do arquivo php.ini no campo Loaded Configuration File: , se não mostrar a localização, deve mostrar none. Pode ser que este arquivo esteja com o nome errado, por exemplo: php.ini.ini

https://i.im.ge/2024/01/18/YqpawT.ini.jpg Tô só te dando trabalho hoje Vinicius, só quero prosseguir nos meus módulos ;-;

Certo, Igor. Fique tranquilo hehe!

Digite no terminal php -m e veja se a extensão do pdo_sqlite é listada.

Pior que não foi: https://i.im.ge/2024/01/18/YsChE1.semsqlite.png

Então verifica se você já descomentou a extensão do pdo_sqlite e se você está alterando no arquivo correto, conforme mostrou o caminho do arquivo php.ini no comando php --ini

Tudo ok nesse, eu só não fiz uma cópia desse php.ini como o Vinicius falou em um dos cursos, mas, isso não tem nada a ver (suponho): https://i.im.ge/2024/01/18/YsgrFa.phpini.jpg

solução!

Você deve renomear o arquivo php.ini-development para php.ini.

Vendo o seu print, você já possui um arquivo php.ini, veja:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAbra ele com o bloco de notas e habilite as extensões.

Vou testar

Resolvido, eu peguei esse arquivo php.ini-development e movi para outra pasta, logo o comando php -m identificou a extensão e o código rodou perfeitamente, muuuuuuuuuuuuuuito obrigado pela paciência, tranquilidade e ajuda Vinicius, papai do céu de abençoe grandemente kkk

Que bom que resolveu! Bons estudos :)