【问题标题】:How to use one github repository as a vendor library, with file overrides from my own repository如何使用一个 github 存储库作为供应商库,并使用我自己的存储库中的文件覆盖
【发布时间】:2019-06-25 04:21:36
【问题描述】:

我正在使用适用于 Marketing Cloud 的 Fuel PHP SDK,并且我想做一些更改。因为我也在使用 Heroku,所以每次 git push 都会刷新存储库。

我需要修改一些文件,但由于每次推送都会刷新 repo,我的更改将被覆盖。有没有办法将这些文件复制到我自己的仓库中,将其声明为 另一个仓库之后的依赖项,并用我更新的文件覆盖主仓库中的文件?

例如,我要更新的文件名为 ET_Get.php。我可以直接更新它,但是每次推送都会覆盖它。我想复制该文件,进行一些更改,并且我希望 repo 使用 that 文件,not repo 自己的文件。

我的 composer.json 看起来像这样

{
    "require": {
        "salesforce-mc/fuel-sdk-php": "1.3.0",
        "guzzlehttp/guzzle": "~6.0",
        "ext-soap": "*",
        "php": "7.1.28",
        "ext-mcrypt": "*",
        "twig/twig": "^2.0",
        "firebase/php-jwt":">=5.0.0"
    },
    "autoload": {
     "psr-4": {
      "FuelSdk\\": "custom-classes",
      "Pardot\\": "custom-classes"
      }
    }
}

所以我想我可以在 salesforce-mc 存储库之后创建自己的存储库,并让我的文件覆盖这些文件。

{
    "require": {
        "salesforce-mc/fuel-sdk-php": "1.3.0",
        "salesforce-mc/custom": "1.0",
        "guzzlehttp/guzzle": "~6.0",
        "ext-soap": "*",
        "php": "7.1.28",
        "ext-mcrypt": "*",
        "twig/twig": "^2.0",
        "firebase/php-jwt":">=5.0.0"
    },
    "autoload": {
     "psr-4": {
      "FuelSdk\\": "custom-classes",
      "Pardot\\": "custom-classes"
      }
    }
}

这可能吗?它不必是一个单独的回购。任何我可以简单地拥有自己的覆盖的方式都可以。

我知道我可以 fork 存储库,并将我的 fork 用作依赖项,但这似乎有点矫枉过正......

【问题讨论】:

    标签: php git github


    【解决方案1】:

    您可以使用诸如cURL 之类的库来调用服务器端

    如果它是一个使用一些 json 或 xml 响应的 API,那会很好用。

    如果他们的页面呈现类似于 html 感谢页面的内容,则您必须对其进行解析以确保其正常工作,然后再呈现您自己的。

    如果是这种情况,并且您正在对 ExactTargets 站点进行 GET 调用,那么您可能只需要进行标头重定向。

    如果您确实需要 POST 数据,那么您还可以呈现一个新表单,它只是一个“提交”按钮,其中包含隐藏字段中的所有数据。基本上和你一开始就提交给他们一样。

    希望有帮助

    【讨论】:

      【解决方案2】:

      事实证明这正是我所需要的。

      https://mnapoli.fr/overriding-dependencies-with-composer/

      Use forked repo on github via composer as dependency

      我所要做的就是分叉原始存储库,进行更改,然后在 composer.json 中使用我的存储库,如下所示:

      {
          "require": {
              "salesforce-mc/fuel-sdk-php": "1.3.0",
              "guzzlehttp/guzzle": "~6.0",
              "ext-soap": "*",
              "php": "7.1.28",
              "ext-mcrypt": "*",
              "twig/twig": "^2.0",
              "firebase/php-jwt":">=5.0.0"
          },
          "repositories":[
            {
              "type":"git",
              "url": "https://github.com/user/forked-project.git"
            }
          ],
          "autoload": {
           "psr-4": {
            "FuelSdk\\": "custom-classes",
            "Pardot\\": "custom-classes"
            }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-01-28
        • 2011-09-12
        • 2017-03-09
        • 1970-01-01
        • 2014-08-25
        相关资源
        最近更新 更多