我正在使用 PHP Storm 开发一个项目,该项目使用我正在开发的软件包。我为此制定了几个工作流程,但我真的很想将一个外部目录(软件包源)添加到我的项目中,而不会影响本地 git 或在供应商目录中进行编辑。
我已经尝试过一些从最慢到最快的序言工作流程,任何关于更好方法的建议都将不胜感激。
尝试 1 最慢 我在 phpstorm 中保持 2 个项目处于打开状态。我必须:
- 致力于活跃的项目。
- 做出我需要的改变
vendor directory
(哎呀!) - 将更改复制到
package project
- 提交更改
package project
- 等待 packagist 获取更新的 repo
- 进行作曲家更新
尝试 2 速度很快,但有痛点 我在 phpstorm 中保持 1 个活动项目处于打开状态。并使用 simlinks 覆盖供应商目录中的项目,使其始终为直接代码。
输入的存储库composer.json
需要包含您的代码的路径。
- 致力于活跃的项目。
vendor directory
在(现在的实际仓库)中进行我需要的更改- 提交更改
package project
而不推送 composer.json
删除临时目录中的 repositories 键- 将更新提交到主项目
- 将 repositories 密钥放回 composer.json 中
这很快,但如果你忘记了 composer.json 存储库密钥,你的项目就会被毁掉,而且在生产环境中更新 composer.json 和 composer lock 就不那么简单了
尝试 3 同样快,但有其他痛点 我在 phpstorm 中保持 2 个活动项目处于打开状态。
https://github.com/franzliedke/studio
它为您简化了所有步骤,基本上是两全其美的,但您仍然需要打开两个不同的项目,并且必须等待 Composer 更新来刷新供应商目录中的项目。此外,还有相当多的屏幕切换,当您在 Web 结果终端、git 和另一个代码编辑屏幕之间来回切换时,这可能会有点麻烦。
- 致力于活跃的项目。
- 在实际的 repo 中进行我需要的更改(另一个屏幕)
- 提交更改
package project
而不推送 - 运行 Composer 更新
这虽然很快,但不如在供应商目录中工作快,但更安全。问题总是出在主项目中,然后需要更新作曲家才能反映更改。
如愿的解决方案
1. 在 phpstorm 中有一个外部链接,您可以在其中拉入项目 src 目录。基本上,IDE 让我可以编辑其他包文件,就像我在链接的供应商中工作时一样。2. Sim 将项目存储库链接到供应商,这样当我在 IDE 文件夹中编辑时它总是最新的。3. 然后唯一需要的是一个应用程序或终端,以便package project
根据需要逐步提交。
任何建议都将不胜感激抱歉,这篇文章太长了……为你坚持看到最后而欢呼 3 声。
答案1
我想出了一个适合自己的工作流程。这不一定适合所有人,但它可以让我在包处于活跃开发状态时将包导入项目,而无需使用 phpstorm 实用程序来包含该目录。
基本上我使用方法 3,它使用 studio 从供应商目录包创建到包代码的软链接。但是,我不用在另一个编辑器窗口或供应商目录中编辑它,而是创建一个vendor-dev
目录,然后简单地将 /vendor-dev 添加到我的 `.gitignore'。这基本上让我可以将任何外部代码带入项目并同时处理它们,而无需触及供应商目录,并且永远不会触发进一步的版本控制。
这样做的最后一个好处是另一个令人惊讶的速度提升,我不必搜索我的包和/或我正在处理的特定文件的所有供应商目录。我可以直接链接到包,这很好,但我也可以直接链接到我正在处理的特定文件,例如类、服务提供商或控制台命令。
我希望这能帮助你提高工作效率。如果你发现更好的方法,请随时发表评论。