0
respostas

[Sugestão] [Bug] Fatal error - Class (Undefined type 'Dompdf\Dompdf)

Olá para todos.

Não consegui responder no tópico do colega Rémi Farine Rosendo. Por isso abri esse. Tive o mesmo problema. Segue minha solução:

Não sei o motive(Talvez, por não termos instalado as extensões do php: mb_string e ext-dom), mas a versão instalado, pode ter vindo uma antiga. verifique se após o comando 'composer require dompdf/dompdf', a versão que foi baixada, é uma versão antiga como nesse exemplo(arquivo composer.json):

"require": {
        "dompdf/dompdf": "^0.6.2"
    }

O correto é ser a mais atual possível como por exemplo:

"require": {
        "dompdf/dompdf": "^2.0",
        "phenx/php-font-lib": "^0.5.4"
    }

Outra forma de ver se é esse o problema. É verificar a existência do diretório 'vendor/dompdf/src'. Se esse diretório não existir dentro de sua vendor, pode ser o motivo dessa mensagem: "Undefined type 'Dompdf\Dompdf'.".

Se esse for o seu caso. Recomendo fazer esse passos a seguir:

  1. instalar as extensões mb_string e ext-dom do PHP(Pois é um requisito do pacote).
  2. Reinicie seu servidor que rodando o PHP. Exemplo em maquina local: sudo systemctl restart apache2
  3. Verificar se as extensões, foram Instaladas com o seguintes comandos(Obs: se a reposta for vazia, tem que instalar ainda):
    1. php -m | grep mbstring
    2. php -m | grep dom
  4. Delete o arquivo 'composer.lock'.
  5. Delete a pasta 'vendor'.
  6. Edite seu arquivo 'composer.json' com a versão que deseja do 'Dompdf'. Ex:
`"require": {
        "dompdf/dompdf": "^2.0",
        "phenx/php-font-lib": "^0.5.4"
    }`

Por fim, Rode o comando: composer install e talvez seja necessário rodar o comando 'composer dumpautoload'. Verifique se os alertas(Undefined type 'Dompdf\Dompdf) sumiram e faça um teste.

Espero ter ajudado. Abraço