如何在 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 的另一个插件中设置对插件的依赖?的主要内容,如果未能解决你的问题,请参考以下文章

如何在此示例中设置对节点的引用

在项目控制中设置对新项目的关注

如何将“删除”操作委托给 Cakephp 4 中的另一个模型?

有没有办法在 Android 中设置对加密数据的随机访问?

在iptables防火墙中设置对yum放行

如何在 cakePHP 的控制器中设置分页器页面