如何使用一个 github 存储库作为供应商库,并使用我自己的存储库中的文件覆盖

How to use one github repository as a vendor library, with file overrides from my own repository

我正在使用 Fuel PHP Marketing Cloud SDK,我想进行一些更改。由于我也在使用 Heroku,因此每次 git 推送时都会刷新存储库。

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

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

我的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"
      }
    }
}

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

我知道我可以对 repo 进行分叉,并将我的分叉用作依赖项,但这似乎有点过分...

您可以使用 cURL

等库在服务器端进行调用

如果 API 以 json 或 xml 响应,那么它会工作正常。

如果他们的页面呈现类似 html 感谢页面的内容,您必须对其进行解析以确保它有效,然后呈现您自己的页面。

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

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

希望对您有所帮助

这正是我所需要的。

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

我所要做的就是分叉原始回购,进行更改,然后在 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"
      }
    }
}