我在我的应用程序/项目和第三方集成(如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
文件的唯一原因是,如果所有内容实际上都是一个单独的项目,并且您需要保证一组版本约束,以保持应用程序正常工作