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:
- instalar as extensões mb_string e ext-dom do PHP(Pois é um requisito do pacote).
- Reinicie seu servidor que rodando o PHP. Exemplo em maquina local: sudo systemctl restart apache2
- Verificar se as extensões, foram Instaladas com o seguintes comandos(Obs: se a reposta for vazia, tem que instalar ainda):
- php -m | grep mbstring
- php -m | grep dom
- Delete o arquivo 'composer.lock'.
- Delete a pasta 'vendor'.
- 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