Какова рекомендуемая конфигурация в плане контроля исходных кодов, сборок, тестирования, отслеживания ошибок и развертывания для загружаемого PHP-приложения (а-ля Wordpress, phpBB, Magento и т.д.)? Как разработчик, работающий над приложением, чего бы вы ожидали? А как пользователь приложения? Пожалуйста, опишите установку и рабочий процесс, а также любые ресурсы, которые, по вашему мнению, могут быть уместны или полезны.
Я обнаружил, что для приложения, которое я поддерживаю, подходит следующий подход:
- Приложение распространяется в виде одного zip-архива, который просто нужно разархивировать на работающем PHP-сервере.
- Переход к приложению автоматически запускает набор проверок на вменяемость (окружение PHP, конфигурация приложения). Ошибки объясняют простыми словами, как исправить любую возникающую проблему.
- При первом запуске, если проверка на вменяемость пройдена, запускается мастер настройки. Он отключается, как только файл настроек существует.
- Все модификации клиента выполняются в специальной подпапке приложения, которую он может скопировать из старой установки (для этой папки сохраняется обратная совместимость). Возможность обновления путем распаковки файлов и копирования нескольких папок - полезная функция.
- Сам zip-файл собирается с помощью PHP-скрипта командной строки, который проверяется в репозитории исходных текстов. Выполнить сборку так же просто, как svn update с последующим вызовом build.php.
- Сборки для разработчиков создаются так же, как и сборки релизов, только с флагом "-no-optimize", передаваемым скрипту сборки, чтобы предотвратить минификацию и конкатенацию.
- Тот факт, что скрипт сборки сам по себе является PHP, означает, что любой разработчик может вносить изменения в процесс сборки, даже не заходя на наш сервер сборки.