Какова наилучшая конфигурация для распространения PHP-приложения?

Какова наилучшая конфигурация для распространения PHP-приложения?
Какова наилучшая конфигурация для распространения PHP-приложения? - markusspiske @ Unsplash

Какова рекомендуемая конфигурация в плане контроля исходных кодов, сборок, тестирования, отслеживания ошибок и развертывания для загружаемого PHP-приложения (а-ля Wordpress, phpBB, Magento и т.д.)? Как разработчик, работающий над приложением, чего бы вы ожидали? А как пользователь приложения? Пожалуйста, опишите установку и рабочий процесс, а также любые ресурсы, которые, по вашему мнению, могут быть уместны или полезны.

Я обнаружил, что для приложения, которое я поддерживаю, подходит следующий подход:

  1. Приложение распространяется в виде одного zip-архива, который просто нужно разархивировать на работающем PHP-сервере.
  2. Переход к приложению автоматически запускает набор проверок на вменяемость (окружение PHP, конфигурация приложения). Ошибки объясняют простыми словами, как исправить любую возникающую проблему.
  3. При первом запуске, если проверка на вменяемость пройдена, запускается мастер настройки. Он отключается, как только файл настроек существует.
  4. Все модификации клиента выполняются в специальной подпапке приложения, которую он может скопировать из старой установки (для этой папки сохраняется обратная совместимость). Возможность обновления путем распаковки файлов и копирования нескольких папок - полезная функция.
  5. Сам zip-файл собирается с помощью PHP-скрипта командной строки, который проверяется в репозитории исходных текстов. Выполнить сборку так же просто, как svn update с последующим вызовом build.php.
  6. Сборки для разработчиков создаются так же, как и сборки релизов, только с флагом "-no-optimize", передаваемым скрипту сборки, чтобы предотвратить минификацию и конкатенацию.
  7. Тот факт, что скрипт сборки сам по себе является PHP, означает, что любой разработчик может вносить изменения в процесс сборки, даже не заходя на наш сервер сборки.

LetsCodeIt, 19 мая 2023 г., 16:23