运行2个composer.json文件

时间:2019-05-10 18:56:03

标签: laravel composer-php phpstorm

我有一个正在开发的PHP(Laravel)项目,它使用了一个我已经开发的助手包,并且在我处理原始项目时也会进行修改。我想知道在作曲家中解决此问题的最佳方法。

现在,在我的composer.json文件中,我有一个存储库路径,以便项目知道始终使用当前版本。

"repositories": {
    "local": {
      "type": "path",
      "url": "../../packages/my-account/my-package"
    }
  }

该路径位于主项目的require路径中,因为它包含在项目中扩展的文件。


 "require": {
    "php": "^7.1.3",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "5.8.*",
    "laravel/tinker": "^1.0",
    "nothingworks/blade-svg": "^0.3.0",
    "my-account/my-package": "^0.3.8@dev",

...

我以前只是打开两个项目,然后更新软件包,然后将其推送给packagist。然后等待其他软件包下载更新,但是这似乎浪费了时间,特别是因为要运行一些单元测试,我只会在升级后才发现问题。

相反,我的系统(MacOS Mojave)中有一个从供应商文件夹到我的帐户文件夹的软链接,以确保在PhpStorm中,我可以同时打开需要的文件并对项目进行更改时间。当一切都按预期进行时,我基本上只需要提交即可。这节省了大量时间,但是有一个缺点...

每次我提交主要项目时,都需要从composer.json中删除存储库块,以将其推送到暂存或生产环境。由于没有repositories-dev或类似性质的东西。

是否有更好的工作流程?使用2个composer.jsons?还是可以解决此问题的一些PhpStorm魔术,这样我就不会在每次提交时都剥离大量的代码?

1 个答案:

答案 0 :(得分:2)

您可以使用https://github.com/franzliedke/studio来解决您的确切问题。这样一来,您就无需修改composer.json文件,即可将符号链接添加到您的包中,因为它通过Composer插件可以实时进行完全相同的操作。