2012-04-17 3 views
0

Я ищу сценарий, который быстро реализует функциональность установки и обновления пакетов для моей инфраструктуры. Он должен уметь делать следующие вещи:PHP/MySQL автономный скрипт установщика/обновления?

  • Должно быть совместимо с PHP 5.
  • Должен быть в состоянии установить и обновить файлы компонентов и таблицы базы данных.
  • Должен разрешить определение зависимостей пакетов и иметь форму разрешения конфликта.
  • Должен разрешать SQL-инструкции UPDATE, когда разработчик пакета предоставляет его. (Чтобы внести изменения в базу данных без потери данных).
  • Должен иметь возможность «помещать» пакет обновления в целевую папку.
  • Должна иметь возможность определять и обнаруживать различные типы пакетов для применения указанной «тюрьмы».
  • Должен предоставить API для интеграции его в пользовательский бэкэнд.
  • Должен разрешить загрузку пакетов, предпочтительно через HTTP (а не FTP или другие).

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

Если у вас есть рекомендации по инструментам, которые схожи или используются в среде с открытым исходным кодом, чтобы создать его, это было бы хорошо. :)

ответ

1

Я не знаю никаких волшебных инструментов для этого, но пара, которая может помочь вам в выполнении этих задач, - это Phrake and Composer.

Phake - это PHP-версия Ruby's Rake util. Вы можете использовать эти сценарии для настройки своей базы данных, обновления файлов и выполнения модульных тестов.

Для управления пакетами вы можете использовать Composer для управления вашими зависимостями (он также может загружаться из PEAR, если вы зависите от пакетов из этих систем), и, конечно же, это может быть включено в ваши скрипты сборки.

+0

Благодарим вас за предложения. Мне очень нравится внешность композитора. Хотя ни Phake, ни Composer не предоставляют функции обновления базы данных, которые мне нужны. Возможно, вы знаете систему, которая это делает. Предпочтительно программист пакета предоставляет и UPDATE.SQL файл для обновления из более старых версий, кроме файла INSTALL.SQL, чтобы выполнить новую установку. – Beanow

+0

Хороший пример того, что я имею в виду, реализован в модулях Drupal. Они генерируют схему базы данных и допускают добавочные дополнения к этой базовой схеме для каждой версии. Также предоставляет функцию обновления для запуска кода, необходимого для обновления существующей базы данных до целевой версии. – Beanow

+0

Подробное описание композитора - подходящее решение. Хотя, кажется, нет стандарта для операций с БД при установке/обновлении, можно реализовать это и повторно использовать его для любого другого продукта, который этого требует. Помимо этого он реализует все перечисленные мной требования. Я соглашусь сейчас, спасибо! – Beanow