如何在 Cakephp 4 的另一个插件中设置对插件的依赖?
Posted
技术标签:
【中文标题】如何在 Cakephp 4 的另一个插件中设置对插件的依赖?【英文标题】:How to set the dependence to a plugin inside another plugin in Cakephp 4? 【发布时间】:2022-01-07 23:51:28 【问题描述】:我正在 cakephp4 中创建一个插件 FileManager
。 (这个插件在app/plugins/FileManager)
这个插件有一个UploaderHelper
,其中包含一个生成输入文件的方法+与该字段关联的文件。
在这种方法中,我使用插件CakephpGlide
(https://github.com/ADmad/cakephp-glide) 来显示与该字段关联的图像的缩略图。
如何在我的插件FileManager
中正确设置对插件CakephpGlide
的依赖?
请注意,我还在我的应用程序中使用了CakephpGlide
(例如在FileManager
之外)。
目前,我只在 app/plugins/FileManager/composer.json 在 require 中添加了一行:
"require":
"php": ">=7.2",
"admad/cakephp-glide": "^5.0", // This one
"cakephp/cakephp": "^4.3"
,
还有其他事情要做吗?
我的意思是我应该只在我的FileManager
的文档中写入配置CakephpGlide
的方式(在用户应用程序的路由和AppView 中)吗?
以这种方式将插件admad/cakephp-glide
存储在哪里?在 app/vendors 或 app/plugins/FileManager/vendors 中?
我有点困惑..
【问题讨论】:
【参考方案1】:如果您不分发插件/使其成为独立插件,则插件根目录中的所有文件都无关紧要,您可以删除它们,一切仍然可以正常运行。
/plugins/
文件夹中的第一方插件是您的应用程序的一部分,因此您的应用程序级别 composer.json
应该知道并需要它的依赖项。
【讨论】:
好的。但是如果我想稍后分发我的插件(我们永远不知道!),我应该如何处理? @Oliv 然后你将重构一些东西,这样你的插件就不会存在于应用程序中,而是一个测试应用程序存在于你的插件中,因此你的插件将持有项目的根composer.json
其中定义了所有依赖项。查看其他独立插件的结构,例如 github.com/cakephp/debug_kit(还有 ***.com/questions/35565066/…,有点过时了,但这个概念仍然适用)。以上是关于如何在 Cakephp 4 的另一个插件中设置对插件的依赖?的主要内容,如果未能解决你的问题,请参考以下文章