我在安装和配置插件时遇到了一些问题,我想如果我对事情的运作方式有了更好的了解,我可能会想出来吗?!
当我通过composer安装cakemanager/cakephp-settings插件时,它会在我的供应商文件夹中添加一个' cakemanager'包含3个子文件夹的文件夹:' cakephp-settings',' cakephp-utils' (依赖)和'设置'。 ' cakephp-settings'文件夹基本上是空的,所有插件文件都在“设置”中。文件夹中。
然而,当我尝试运行迁移时,我收到一个错误,它无法找到/vendor/cakemanager/cakephp-settings/config/bootstrap.php文件 - 这不奇怪,因为这个文件不存在!在我的应用程序中随处可见相同的错误
在vendor / cakephp-plugins.php文件中,我有:
'Settings' => $baseDir . '/vendor/cakemanager/cakephp-settings/',
如果我暂时将其更改为
'Settings' => $baseDir . '/vendor/cakemanager/Settings/',
我可以完成迁移并且我的页面再次显示正常,但是当我运行composer dumpautoload并导致进一步的问题时,这会恢复正常 - 我需要一个永久的解决方案。
如何编辑插件(composer.json文件?)以便正确构建cakephp-plugins.php文件并查找bootstrap.php文件的正确路径?
答案 0 :(得分:0)
我建议您尝试推送合并 this pull request ,因为这会解决问题的根源,插件installer-name
中的composer.json
选项将导致目标文件夹在安装composer/installers
的情况下被“错误地”命名。
没有理由更改文件夹名称,从版本3开始,CakePHP不再需要composer/installers
,因此删除该选项应解决问题。
如果您实际上不需要,也可以尝试删除composer/installers
。如果无法做到这一点,您还应该可以通过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 也许值得,也许可以让他们一起尊重到installer-name
选项。
另见