Есть ли у кого-нибудь рабочий процесс разработки / постановки / развертывания с помощью php / mysql?

Я думаю о хорошем рабочем процессе для веб-разработки php / mysql.

У кого-нибудь есть советы?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
18
0
10 633
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вот что мы делаем:

  1. Каждый работает над своими проектами в своей ветке (код, тесты и т. д.)
  2. Когда все выглядит хорошо, он сливается с багажником.
  3. phpUnderControl перестраивает магистраль, запускает все наши тесты phpUnit, создает документацию, обновляет базу данных и т. д.
  4. Если все пройдет, мы объединимся в Stable
  5. Конюшня полностью перестраивается, как багажник.
  6. Stable вручную продвигается на наш производственный сервер

У нас есть несколько настраиваемых скриптов, которые заботятся об обновлении нашей базы данных и переходе к производственной среде. Для нашей базы данных мы храним все дельты в одной папке, и скрипт проверяет текущий уровень БД на доступные дельты и, при необходимости, применяет их.

Для продвижения в производство у нас есть другой скрипт, который извлекает все производственные данные, а затем запускает rsync, чтобы подтолкнуть изменения.

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

большое спасибо, думаю, я попробую это. phpUnderControl выглядит очень многообещающе

Zoran Zaric 12.01.2009 11:03

Я думаю, что все делают эти вещи немного по-разному, в зависимости от конкретного приложения. Вот наша установка:

Перед выпуском:

  • Все придерживаются /trunk.
  • Когда мы хотим накатить релиз, мы копируем транк на /tags/yymmddhhiiss.
  • Стабилизируем бирку.

Как только он стабилизируется, мы запускаем сценарий развертывания:

  • На рабочем сервере проверьте новый тег.
  • Сделайте дамп базы данных.
  • Остановите демонов и закройте веб-приложения.
  • Переключите символическую ссылку /current, чтобы она указывала на только что извлеченный тег.
  • Запустите сценарии миграции.
  • Перезапустите демоны и приложения.

Если нам нужно быстро внести небольшое изменение, мы объединяем его с текущим тегом, и затем мы можем запустить гораздо более простой процесс исправления на сервере:

  • Остановите демонов и закройте веб-приложения.
  • Запускаем svn update
  • Перезапустите демоны и приложения.

Обратите внимание, что есть определенные инструменты, которые предназначены для структурирования / автоматизации этих процессов. Phing - это один, а Symfony имеет свой собственный пакетная система, который раньше был отдельным проектом под названием паке. И, как будто этого недостаточно, Zend Framework собирается создать их собственный вариант. Все это действительно немного беспорядочно, но Phing, вероятно, наиболее широко используется. Вы также можете использовать что-то не относящееся к php, например Муравей или Capistrano. Мы просто используем сценарии оболочки, которые в основном удовлетворяют те же потребности.

У нас также есть непрерывная сборка, которая извлекается из магистрали и запускает все тесты. В настоящее время у нас есть только базовая коллекция сценариев оболочки, выполняющих это, но мы рассматриваем возможность перехода на PhpUnderControl или xinc.

Шаг миграции, возможно, заслуживает небольшого пояснения. В них содержатся изменения в базе данных, а также другие задачи, которые необходимо выполнить для нового выпуска. На данный момент наши миграции немного просты; У нас просто есть папка с кучей сценариев .php и .sql, и во время миграции они запускаются последовательно. Мы отслеживаем, какие изменения были внесены, - это очищать папку migrations сразу после создания нового тега. Вероятно, было бы разумнее использовать базу данных для регистрации того, какие изменения были выполнены. Мы считаем, что для этой цели можно использовать что-то вроде шумный.

Другие вопросы по теме