Boilerplate для профессиональной среды разработки команды PHP - PullRequest
4 голосов
/ 17 октября 2008

Я хотел бы получить общее согласие в отношении минимальной / стандартной среды разработки для PHP-команды. Я не могу найти эту информацию нигде в Интернете. В мире открытого исходного кода существует так много вариантов и так много способов сделать что-то, но я еще не нашел какой-либо общей наилучшей практики для инфраструктуры / сантехники.

Рассмотрим небольшой магазин с командой из 5-10 разработчиков / дизайнеров, занимающихся приложениями LAMP CRUD. Они должны управлять разработкой, подготовкой и сборкой продукции. Им нужно качественное программное обеспечение, и они не могут наступать друг на друга, пытаясь добиться цели. Развертывание должно быть простым и быстрым. Иногда будут исправления. Откат производственного сервера до предыдущей версии должен быть таким же быстрым.

Что нужно учитывать:

  • Управление исходным кодом (SVN, git, Hg)

  • Схема базы данных / данные непрерывны интеграция, привязанная к исходному коду пересмотр. Это я особенно интересует.

  • Индивидуальные среды разработки (например, у каждого разработчика есть VMware экземпляр развития среда повозиться (БД сервер, веб-сервер, код, данные, и т.п.))

  • Управление центральным развитием, Постановочные и производственные сборки

  • Развертывание производства (например, tar шарики, об / мин / дБ)

  • Автоматическое тестирование (например, фиксация SVN крючки, ночные тесты cron для медленных тесты)

  • Командное общение (отслеживание ошибок, внутренняя документация, irc / im и т. д.)

Я оставил это открытым для редактирования сообществом, так что не стесняйтесь редактировать / добавлять. В идеале кто-то может посетить эту страницу и через несколько часов подготовить основы для развития своей команды.

Ответы [ 2 ]

1 голос
/ 17 октября 2008

Я начну. Не стесняйтесь редактировать и улучшать это

Это для вымышленного продукта под названием: dundermifflin.com

  1. Настройте виртуальную машину разработки, на которой запущено то же программное обеспечение, которое вы планируете использовать на производстве: например, Ubuntu с PostgreSQL, Apache и PHP5.

  2. Каждый разработчик запускает свою собственную копию этой виртуальной машины с именем хоста, установленным на свое имя пользователя (например, phpguy.dundermifflin.com)

  3. Настройте центральный промежуточный сервер (такой же, как виртуальная машина разработки). Это staging.dundermifflin.com.

  4. Настройка центрального сервера Subversion с новым хранилищем для dundermifflin.com. Это devel.dundermifflin.com.

  5. 4b. Добавить хук после фиксации в пакет / развернуть на промежуточном сервере для коммитов, помеченных как «промежуточный»
  6. 4c. Добавить хук после фиксации в пакет / развернуть на производственном сервере для коммитов, помеченных как «релиз»

Этот метод не учитывает непрерывную интеграцию базы данных, что означает, что откат SVN к предыдущей ревизии приведет к поломке сборки, если ваша база данных не очень статична. Предложения?

  1. Используйте Bugzilla на центральном сервере Subversion (devel.dundermifflin.com) для отслеживания ошибок.

  2. Написать сценарий оболочки для запуска тестов PHPUnit / SimpleTest (должен вызываться элементом 4a).

0 голосов
/ 20 октября 2008

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

Непрерывные сборки с CruiseControl, Ant и PHPUnit

...