我在安装和配置插件时遇到了一些问题,我想如果我能更好地了解它是如何工作的,我可能就能解决它了?!
当我通过composer安装cakemanager/cakephp-settings插件时,它会在我的供应商文件夹中添加一个'cakemanager‘文件夹,里面有3个子文件夹:'cakephp-settings','cakephp-utils’(一个依赖项)和'Settings‘。“cakephp-Settings”文件夹基本上是空的,所有的插件文件都在“Settings”文件夹中。
然而,当我尝试运行迁移时,我得到一个错误,它找不到/vendor/cakemanager/cakephp-settings/config/bootstrap.php文件-这并不奇怪,因为这个文件不存在!在我的应用程序中几乎所有地方都有相同的错误
在供应商/cakephp-plugins.php文件中,我有以下内容:
'Settings' => $baseDir . '/vendor/cakemanager/cakephp-settings/',如果我临时将其更改为
'Settings' => $baseDir . '/vendor/cakemanager/Settings/',我可以完成迁移,我的页面看起来又正常了,但是当我运行composer dumpautoload时,这会恢复,并导致更多的问题-我需要一个永久的解决方案。
如何编辑插件(composer.json文件?)以便它正确地构建cakephp-plugins.php文件,并在bootstrap.php文件的正确路径中查找?
发布于 2017-11-08 17:58:57
我建议你尝试合并,因为这将从根本上解决问题,如果安装了composer/installers,插件composer.json中的installer-name选项将导致目标文件夹被“错误”命名。
没有理由更改文件夹名,而且从版本3开始,CakePHP不再需要composer/installers,因此删除该选项应该可以解决问题。
如果您实际上不需要composer/installers,也可以尝试删除它。如果这是不可能的,您还应该能够通过Plugin::load() calls path选项指定实际路径来解决此问题:
Plugin::load('Settings', [
'path' => ROOT . DS . 'vendor' . DS . 'cakemanager' . DS . 'Settings'
]);向和/或报告问题可能也是值得的,也许可以让他们在installer-name选项方面协同工作。
另请参阅
https://stackoverflow.com/questions/47167322
复制相似问题