Как использовать один репозиторий github в качестве библиотеки вендора с переопределением файлов из моего собственного репозитория

0

Я использую Fuel PHP SDK для Marketing Cloud, и я хотел бы внести некоторые изменения. Так как я также использую Heroku, хранилище обновляется при каждом нажатии на git.

Мне нужно изменить несколько файлов, но поскольку репо обновляется при каждом нажатии, мои изменения будут перезаписаны. Есть ли способ скопировать эти файлы в мое собственное хранилище, объявить это зависимостью после другого хранилища и переопределить файлы в основном хранилище моими обновленными файлами?

Например, файл, который я хочу обновить, называется ET_Get.php. Я мог бы обновить его напрямую, но тогда он будет перезаписываться при каждом нажатии. Я хочу скопировать этот файл, внести некоторые изменения, и я хочу, чтобы репо использовало этот файл, а не собственный файл репо.

Мой 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"
      }
    }
}

Это возможно? Это не должно быть отдельным репо. Любой способ, которым я могу просто иметь свои собственные переопределения, будет в порядке.

Я знаю, что могу разложить репо и использовать свой форк в качестве зависимости, но это похоже на излишество...

Теги:
forms
github
submit
exacttarget

2 ответа

0
Лучший ответ

Это оказалось именно то, что мне было нужно.

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

Используйте разветвленное репо на github через композитора в качестве зависимости

Все, что мне нужно было сделать, - это разветкить исходное репо, внести свои изменения, а затем использовать репо в 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"
      }
    }
}
1

Вы можете сделать сторону сервера вызовов с помощью библиотеки, такой как cURL

Это будет нормально работать, если это API, который отвечает каким-то json или xml.

Если их страница делает что-то вроде страницы html thank you, вам нужно будет разобрать это, чтобы убедиться, что это сработало, а затем сделать свой собственный.

Если этот случай и вы делаете GET-вызов на сайт ExactTargets, тогда вы, вероятно, можете просто перенаправить заголовок.

Если у вас есть данные POST, вы также можете отобразить новую форму, которая является просто кнопкой "Отправить", которая содержит все данные в скрытых полях. В основном это было бы так же, как если бы вы представили их для начала.

надеюсь, это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню