提问者:小点点

CakePHP 3如何构建cakephp-plugins.php文件?


我在安装和配置一个插件时遇到了一些问题,我想如果我对插件的工作原理有更好的了解,我也许能够找到答案?!

当我通过作曲家安装cakemanager/cakephp-设置插件时,它会添加到我的供应商文件夹中的cakemanager文件夹,其中包含3个子文件夹:cakephp-设置,cakephp-utils(依赖项)和设置。cakephp-set文件夹基本上是空的,所有插件文件都在设置文件夹中。

但是,当我尝试运行迁移时,我得到一个错误,它找不到/vendor/cakemanager/cakephp settings/config/bootstrap。php文件-难怪这个文件不存在!在我的应用程序中几乎到处都是相同的错误

在vendor/cakephp插件中。php文件我有这个:

'Settings' => $baseDir . '/vendor/cakemanager/cakephp-settings/',

如果我暂时把这个改成

'Settings' => $baseDir . '/vendor/cakemanager/Settings/',

我可以完成迁移,我的页面看起来又正常了,但是当我运行composer dumpautoload时,这会恢复,并导致后续问题-我需要一个永久性的解决方案。

如何编辑插件(composer.json文件?)以便正确构建cakephp-plugins.php文件,并在bootstrap.php文件的正确路径中查找?


共1个答案

匿名用户

我建议您尝试推动合并这个pull请求,因为这将从根本上解决问题,即pluginscomposer中的installer name选项。如果安装了编写器/安装器,json将导致目标文件夹命名“不正确”。

没有理由更改文件夹名称,从版本3开始,CakePHP不再需要作曲家/安装程序,所以删除该选项应该可以解决这个问题。

如果您实际上不需要,也可以尝试删除编写器/安装器。如果不可能,您还应该能够通过Plugin::load()调用path选项指定实际路径来解决问题:

Plugin::load('Settings', [
    'path' => ROOT . DS . 'vendor' . DS . 'cakemanager' . DS . 'Settings'
]);

也可能值得向https://github.com/cakephp/plugin-installer和/或https://github.com/composer/installers报告这个问题,也许可以让他们一起使用安装程序名称选项。

另见

  • 原料药