我在 github 上有一个主项目存储库,其中包含我的 PHP/laravel 项目的代码。为了保持项目的某些部分独立,我们创建了一个额外的存储库,其中包含库。
我的主项目使用这些库。文件结构如下所示:
/main_folder/...<code linked to main project repository>
/main_folder/vendors/libraries/...<library code linked to libraries repository>
请注意,库代码位于主项目的子文件夹中。
项目使用 composer 来管理包。 我正在使用 Visual Studio Code 进行开发。
每次运行 composer update 时,/vendors/ 中的包都会更新,包括我的库包。这种设置的问题在于,它使得快速测试库代码更改变得很尴尬。我找到了 2 种方法来使这有点工作,但似乎都不是正确的做事方式。
选项 A)
缺点是我每次在主项目上运行 composer update 时都需要删除我的库存储库。 Composer 无法处理目录中的 .git 文件。
选项 B)
缺点是每次我对要使用主代码进行测试的库进行更改时,我都需要运行 composer update 。主项目用于调试和测试库。每次更改都需要几分钟,这使得调试非常痛苦。
问题:
答案 0 :(得分:2)
您可以将库依赖项配置为 symlink to a local directory(路径存储库)。使用符号链接,您仍然可以在客户端应用程序中工作时从其 dev 文件夹开发库。
当您的库开发完成后,您可以将其推送到您的远程存储库(或 packagist,您需要的任何东西),标记一个版本并配置适当的依赖项。
答案 1 :(得分:1)
您可以使用 franzliedke/studio 实现这一点,它会自动将您的本地包符号链接到供应商目录中。
它不需要对您的项目 composer.json
进行修改,并且可以通过其 studio.json
配置文件支持多个本地包。