由于公司防火墙,我无法使用composer来处理我的依赖项。目前我尝试使用Barry vd Heuvel's DomPDF wrapper for Laravel并尝试:
composer.json
(不确定是否需要,但无论如何都这样做了)并在"barryvdh/laravel-dompdf": "*"
容器中添加了require
。vendor/barryvdh/laravel-dompdf
config
- 文件夹,src
- 文件夹和文件.gitignore
,composer.json
和readme.md
)app.php
中添加服务提供商和外观。服务提供商列为Barryvdh\DomPDF\ServiceProvider::class
,且外观的别名为'PDF' => Barryvdh\DomPDF\Facade::class
composer dump-autoload
刷新浏览器后,我获得了Class 'Barryvdh\DomPDF\ServiceProvider' not found
。我还尝试运行php artisan cache:clear
和php artisan dump-autoload
,但最后一个失败了它无法找到Barryvdh\DomPDF\ServiceProvider
。
我忘了做些什么才能让它发挥作用?
更新 我已经尝试过Wouter J的建议答案,composer.json现在看起来像:
..
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Barryvdh\\DomPDF\\": "vendor/barryvdh/laravel-dompdf/src"
},
..
我已经验证了作曲家dump-autoload是否有任何效果,但我认为它有。因为该条目现在也列在vendor/composer/autoload_psr4.php
中,如:
return array(
// more entries
'Barryvdh\\DomPDF\\' => array($vendorDir . '/barryvdh/laravel-dompdf/src'),
'App\\' => array($baseDir . '/app'),
);
我相信在这一点上这是有效的,但Facade没有回应。当我尝试调用类似PDF::loadView(...)
之类的内容并让我让PhpStorm导入类(vendor/barryvdh/laravel-dompdf/src/PDF.php
)时,它会抛出一个错误,我无法静态调用方法loadView。根据文档,我应该可以这样称呼它:
$pdf = PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');
但是这会导致我Non-static method Barryvdh\DomPDF\PDF::loadView() should not be called statically, assuming $this from incompatible context
。
建议?
答案 0 :(得分:3)
Composer autoload仍然不知道如何下载软件包。您必须像这样配置自动加载:
docke run -it -v ~/some.txt:/some/container/folder
答案 1 :(得分:1)
我知道这个问题已经过时了,但由于我没有看到任何解决方案,所以这是我的:我遇到了完全相同的问题。能够通过在我的localhost上运行composer dumpautoload
来解决,然后复制文件夹' vendor / composer'没有SSH访问权限的共享主机。希望这会帮助处于类似情况的人。
答案 2 :(得分:0)
该问题解决了该应用程序不了解DomPDF\ServiceProvidor
或与DomPDF
相关的任何问题,因为barryvdh/laravel-dompdf
本身依赖于dpmpdf/dompdf
包仍然缺少且未附带barryvdh/laravel-dompdf
包dompdf/dompdf
也取决于几个扩展名,即
PHP version 5.3.0 or higher
DOM extension
GD extension
MBString extension
php-font-lib
php-svg-lib
看看这里的包https://packagist.org/packages/dompdf/dompdf下载并放入您的供应商目录,然后更新您应该正常工作的composer dumpautoload