8
respostas

Não estou conseguindo gerar o relatório PDF.

Olá, Boa noite!

Não estou conseguindo gerar o pdf com a lib Dompdf, o erro acusa que não está achando a classe 'Dompdf\Dompdf', já procurei no Google alguma solução e infelizmente não consegui resolver, se puderem me ajudar eu agradeço.

** PHP Fatal error: Uncaught Error: Class 'Dompdf\Dompdf' not found in /var/www/html/Curso Alura - PHP e MySQL: criando sua primeira aplicação web/projeto-inicial/gerador-pdf.php:9**

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

8 respostas

Olá, Antonio! Tudo bem?

Uma possível solução para esse problema é verificar se você instalou a biblioteca Dompdf corretamente. Você pode fazer isso através do Composer, que é um gerenciador de dependências para PHP. Certifique-se de que você executou o comando composer require dompdf/dompdf para instalar a biblioteca.

Espero ter ajudado, bons estudos!

Boa tarde Antonio Carlos, tudo bem?

Eu entrei neste post pelo mesmo motivo seu e acredito que assim como eu, a reposta do professor não ajudou muito. Como consegui resolver o problema vou dizer o que fiz para você tentar resolver também.

  1. Há duas extensões no arquivo php.ini que precisamos tirar o comentário (retirar o ; que fica na frente). A primeira é a extension=curl que é utilizada pelo composer e a segunda é extension=mbstring. Tirando o ponto e vírgula (;) da frente deles, salve e fecha o arquivo. Caso não saiba onde fica esse arquivo, se você instalou o php de forma direta, vai estar na pasta onde você salvou, no meu caso foi C:/php. Se você ainda não modificou ele para nada, pode ser que ele esteja com o nome de php.ini-development, então basta renomeá-lo para apenas php.ini. Já se você utilizou o xampp ou outro parecido para instalar, na janela do programa aperte no botão config do apache e procure pelo php.ini.
  2. Assim como eu, você já instalou o DomPdf, então não reinstale diretamente que não vai adiantar. Eu só consegui resolver desinstalando ele com o comando composer remove dompdf/dompdf.
  3. Por fim reinstale do jeito ensinado na aula com o comando composer require dompdf/dompdf.

Espero que ajude, comigo resolveu mesmo aparecendo alguns erros de instalação.

Opa, Rodrigo! Obrigado pela sua contribuição! Vai ajudar bastante as outras pessoas que estudam aqui conosco :)

Sobre as duas extensões, quando o PHP sente a falta dessas extensões, geralmente retorna uma mensagem de erro, indicando que há a falta dessas extensões. No caso do Antonio, o erro informa que não conseguiu localizar a biblioteca.

Sim, mas sobre essas extensões só apareceram para mim no terminal, não na mensagem de erro da página como ele mostrou. Pode ser que esteja aparecendo para ele também, mas ele não reparou.

Olá, Rodrigo e Vinicius! Boa noite!!!

Rodrigo, muito obrigado pela sua mensagem, eu tinha feito isso já, tirei o ; da extensão mbstring conforme você mencionou, pois tinha visto em post na internet, porém mesmo assim o erro continuava, eu utilizo apache2.

A forma que resolvi este problema do dompdf, foi a seguinte eu exclui a pasta vendor e os arquivos composer.json e composer.lock, ontem eu já havia excluido a pasta vendor, porém quando instalava novamente o dompdf pelo composer require, mesmo assim ele continuava instalando o dompdf ^06.02 e eu estava desconfiando que era isso que estava dando problema, e não estava conseguindo atualizar a versão do dompdf, conforme está na aula do professor Vinicius. A versão que ele usa na aula é ^2.0.

Hoje porém depois que vi a mensagem do professor, me deu uma luz(hehe) e e exclui os dois composer (.json e .lock) mais a pasta vendor e quando fiz o procedimento novamente do composer require dompdf/dompdf , ele instalou o 2.0, e gerou o relatório pdf.

Senhores obrigado pela ajuda e atenção e uma abençoada a semana para nós!!!

Oi, Antonio.

Que bom que conseguiu resolver! Parabéns!

Agradeço por compartilhar sua solução aqui no fórum também, pois ajuda outras pessoas que estudam aqui com a gente :)

Bons estudos!

Olá pessoal, estava tendo esse mesmo problema mas de nenhuma forma que vi aqui consegui resolver.

Vi que tava dando erro num tal de "sabberworm" e tinha algo haver com arquivo zip, entao fui no php.ini, procurei por algo relacionado a zip e achei uma extensão, tirei o ; da frente, e quando eu mandei o composer require dompdf/dompdf ele funcionou.

Não sei por qual motivo o vscode diz ter um erro em ($dompdf = new Dompdf();), mas quando eu entro no site e aperto no botão para criar o pdf ele cria sem problemas.

Oi, Davi. Obrigado por compartilhar a sua solução. É verdade, a biblioteca precisa da extensão zip habilitada no PHP. No meu caso não apareceu porque eu já tinha habilitado em outros projetos :)

Bons estudos!