github — Как автоматически обновить один класс PHP на нескольких платформах?

Допустим, у меня есть класс php, хранящийся в одном файле. Если этот класс используется в нескольких проектах, расположенных на разных хостах (или даже разными пользователями), будет очень сложно обновить этот класс.

Как я могу себе представить, это может быть сделано автоматически с помощью этой процедуры:

  1. Класс PHP (или файл) хранится в одном репозитории.

  2. На каждом хосте, использующем этот класс, должно быть задание cron, чтобы проверить, есть ли у этого (этих) классов (или файлов) какое-либо обновление.

  3. Если ДА, этот файл загружается и заменяет существующий.

Я мог бы сделать все это сам, но я полагаю, что должны быть такие готовые решения. Мои существующие репозитории, такие как github, имеют такую ​​функциональность или любую другую …

Вопросы:

  1. Является ли описанный мной сценарий оптимальным для этой функции?

  2. Есть ли готовые к использованию решения? (надеясь на бесплатное решение)

-3

Решение

Мы используем композитор управлять нашими зависимостями, которые можно загружать из частных репозиториев. Разработайте свой общий класс внутри проекта, а затем установите его как зависимость ваших последующих проектов внутри composer.json, После обновления вашего исходного проекта (который содержит ваши общие файлы) ваши последующие проекты могут получить эти изменения, просто запустив $ composer update

Вы можете настроить нижестоящие проекты так, чтобы они указывали на ваш верхний проект, как это внутри composer.json:

{
"require": {
"myname/myupstreamproject": "dev-master"},
"repositories": [
{
"type": "git",
"url": "git@github.com:myname/myproject.git"}
]
}

Если вы используете теги в своем репо, вы можете заменить "dev-master" с соответствующими синтаксис управления версиями если по какой-то причине вам нужно, чтобы в некоторых ваших проектах использовались разные версии ваших общих файлов.

3

Другие решения

проверьте использование rsync. rsync может использоваться для репликации файлов / папок в нескольких системах и может запускаться из исходной системы для развертывания изменений, если таковые имеются (инкрементно). Или, если класс находится в github или другой системе хранилища, напишите автоматизированное задание, которое выполняет обновление на регулярной основе.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector