将子文件夹中各种集成的composer供应商文件夹合并到一个根文件夹中



我在我的应用程序/项目和第三方集成(如Mailchimp、Calendly a.o.(之间创建工具/桥梁,其中许多都有自己的供应商文件夹和文件。

典型的集成如下所示:

/tool1/index.php composer.json ...
/tool1/vendor/
/tool1/mycode/
/tool2/index.php composer.json ...
/tool2/vendor/
/tool2/mycode/

20多种其他工具的结构相同,其中许多工具都有自己的供应商文件夹。大多数是从GitHub下载或安装的。

我正在尝试进行一些维护,并将供应商文件夹集中到项目的根目录中,而不是从每个工具中调用供应商文件夹。原因是大多数人使用相同的软件包,如PSR、Guzzle、league、composer a.o.

然后应该是这样的:

/vendor/*
/tool1/index.php composer.json ...
/tool1/mycode/
/tool2/index.php composer.json ...
/tool2/mycode/

我的问题是(由于缺乏这方面的知识(,我不知道该如何处理我的每个工具的自动加载文件。显然,每个供应商文件夹中都有一个autoload.php,特别是针对这1个工具(我想是这样(。

这会带来麻烦吗?我是不是更适合将每个工具(包括供应商文件(分开,还是将其移动到根文件夹并花一些时间整理结构是一种好的做法。如果是后者,请建议如何保持正常工作。

如果它们真的是完全独立的工具,请将它们分开,并具有自己的离散依赖关系。

尝试合并多个composer.json文件将使您陷入依赖关系地狱,不同的工具需要不兼容的依赖关系,并且无法安装/更新。

尝试为多个项目指定一个供应商将是一件愚蠢的事情,因为许多工具将使用相同依赖项的略微不同的版本。

将所有内容移动到同一个composer.json文件的唯一原因是,如果所有内容实际上都是一个单独的项目,并且您需要保证一组版本约束,以保持应用程序正常工作

相关内容

最新更新