【问题标题】:How to install a plugin manually in CakePHP 3?如何在 CakePHP 3 中手动安装插件?
【发布时间】:2016-03-22 19:13:59
【问题描述】:

我无法使用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.) 尝试了插件文档中的一个非常简单的示例:

$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

非常感谢有关如何手动安装插件的任何帮助或指导。

如果我需要提供任何其他信息,请尽管询问。

【问题讨论】:

  • 仅仅更新 composer.json 不会有任何好处。之后你必须运行composer update

标签: cakephp cakephp-3.0 cakephp-3.x


【解决方案1】:

您收到此错误是因为在 vendor/composer/ 内您可以看到一些 autoload_*.php 文件。这些文件包含加载类的路径。我认为没有人可以安全地告诉您要更新什么以及这些文件的位置。

所以你有两个解决方案:

1 - 在本地计算机上复制 composer.json 并运行 composer update。然后移动在您的应用程序中创建的文件。我建议先备份一下。您最有可能需要移动的东西是:

 vendor/
 composer.json
 composer.lock

2 - 使用插件中的路径开始更新vendor/composer/autoload_*.php 中的文件。很可能您只需要更新以下两个文件:

vendor/cakephp-plugins.phpvendor/composer/autoload_psr4.php。就我个人而言,我不会选择第二种解决方案,我只是将其添加为以防万一。

【讨论】:

  • 您的评论很有用。只需要补充一点,我们需要在特定插件而不是根文件夹中更新此命令。
猜你喜欢
  • 1970-01-01
  • 2015-08-05
  • 2015-10-11
  • 2013-11-04
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
相关资源
最近更新 更多