我无法使用Composer
,因此必须手动安装CakePDF plugin,但以下来自官方CakePHP文档的示例似乎不起作用。
所以这是我遵循的安装流程:
1。)将插件复制到app/plugins/CakePdf
2.。)更新了应用的composer.json
文件,如下所示:
"autoload": {
"psr-4": {
"CakePdf\\": "./plugins/CakePdf/src",
"CakePdf\\Test\\": "./plugins/CakePdf/tests"
}
},
"autoload-dev": {
"psr-4": {
"App\\Test\\": "tests",
"Cake\\Test\\": "./vendor/cakephp/cakephp/tests"
"CakePdf\\": "./plugins/CakePdf/src",
"CakePdf\\Test\\": "./plugins/CakePdf/tests"
}
}
3.。)在bootstrap.php
中加载插件:
Plugin::load('CakePdf', ['bootstrap' => true, 'routes' => true, 'autoload' => true]);
4.。)添加了路由器扩展:
Router::extensions(['pdf']);
5.从插件的doc中尝试了一个非常简单的示例:
$cakePdf = new CakePdf(array(
'engine' => 'CakePdf.DomPdf',
'pageSize' => 'A4',
'orientation' => 'portrait'
));
$html = '<html><head><body><p>Pdftest</p></body></head></html>';
$rawPdf = $CakePdf->output($html);
但是代码在第一行中断,并提供以下错误消息:
Class 'App\Controller\CakePdf' not found
我非常感谢有关如何手动安装插件的任何帮助或指导。
如果我需要提供任何其他信息,请询问。
答案 0 :(得分:3)
您收到此错误,因为在vendor/composer/
内可以看到一些autoload_*.php
个文件。这些文件包含加载类的路径。我想没有人可以安全地告诉你要更新什么以及这些文件中的位置。
所以你有两个解决方案:
1 - 在本地计算机上复制composer.json
并运行composer update
。然后移动应用程序内创建的文件。我建议先做个备份。最有可能的事情就是:
vendor/
composer.json
composer.lock
2 - 使用插件中的路径开始更新vendor/composer/autoload_*.php
内的文件。最有可能的是,您只需要更新以下两个文件:
vendor/cakephp-plugins.php
和vendor/composer/autoload_psr4.php
。就个人而言,我不会选择第二种解决方案,我只是将其作为替代方案添加,以防万一。