大多数时候我都在开发 Joomla 扩展。经常发生需要重用帮助类、安装类等的情况。到目前为止,我只是复制粘贴的代码。我知道,我知道……但这始终是最快的解决方案,从长远来看,它是最慢的。我现在一直在思考如何在我的项目中管理依赖项管理。我已经测试了作曲家,我喜欢它,但它似乎不适合我。让我详细说明。假设我们有以下文件夹结构
projects
- library A
- library B
- project A
- project B
- project C
项目 A 和 B 都使用库 A 和 B,其中项目 C 仅使用库 A。如果我使用 composer,那么文件夹的结构将如下所示:
projects
- library A
- library B
- project A
-- vendor
--- library A
--- library B
- project B
-- vendor
--- library A
--- library B
- project C
-- vendor
--- library A
我不知道——如果我使用不是我自己开发的第三方库,这可能会很好,但是如果我的硬盘上已经有库 A 和库 B 的代码——为什么我要复制*他们到供应商文件夹?不仅如此,每当我更新我的库时,我都需要在每个项目中进行 composer update 以获得最新的库版本。这对我来说似乎有点矛盾?
所以我想出的是->符号链接。我可以将符号链接放置到我的库 A 和 B,然后每当我进行更改时 -> 更改将自动应用于我的所有项目。
每当我压缩扩展时,我的 phing 脚本都会获取库并将它们包含在 zip 中。所以这似乎对我的开发工作流程有好处,但还有另一个问题。我的一些项目可以在 github 上找到,其他开发人员分叉它们,对它们做任何他们喜欢的事情等。现在我需要向他们解释,他们应该创建与我相同的目录结构,以便构建脚本能够运行。他们将下载项目 A,但他们必须去下载库 A 和 B。
这就是作曲家很棒的地方。但是如果我想轻松一点,我需要使用符号链接......你如何处理这种情况?您的工作流程是什么?您如何构建项目和库,以便不必到处复制代码,同时让其他开发人员在几秒钟内轻松上手?欢迎任何提示!