Мне интересно узнать, как люди развертывают свои приложения CakePHP. Недавно я обратился к вопросу о создании независимой разработки CakePHP, что было бы неплохой возможностью для меня получить некоторый опыт в уровне представления (в моей работе FT я занимаюсь разработкой Java EE в области бизнеса и настойчивости).
Мои мысли немного дезорганизованы на данный момент, но я рассматриваю следующие сценарии:
-
Разработчик, работающий в среде IDE, изменяет файл, который автоматически (в фоновом режиме) синхронизируется с веб-сервером разработки, работающим локально. Этот сценарий - это то, как я в идеале хотел бы сделать разработку... внести изменения и увидеть изменения в действии без каких-либо дополнительных шагов.
-
Разработчик, работающий в среде IDE, изменяет файл, который автоматически (в фоновом режиме) синхронизируется через FTP с удаленным веб-сервером разработки. Этот сценарий был бы полезен, когда я путешествую, используя мой нетбук (который медленно запускает мою среду IDE, так как он не имеет веб-сервера в миксе).
- Администратор развертывает последнюю версию приложения CakePHP из репозитория исходного кода на локальный веб-сервер.
- Администратор развертывает последнюю версию приложения CakePHP из репозитория исходного кода на веб-сервер через FTP.
- Администратор развертывает старую версию приложения CakePHP из репозитория исходного кода на локальный веб-сервер.
- Администратор развертывает старую версию приложения CakePHP из репозитория исходного кода на веб-сервер через FTP.
Наиболее эффективными инструментами разработки являются Eclipse, Ant и Subversion. Мое предпочтение заключается в том, чтобы продолжать использовать их, но я бы подумал о переключении, если это облегчает выполнение сценариев.
Вопросы:
- Являются ли эти разумные сценарии или должны ли я думать о разработке и развертывании по-другому?
- Какие существуют инструменты, которые могут помочь упростить разработку/развертывание? Было бы лучше, если бы я сделал свое собственное решение с помощью Ant, скриптов и т.д.
- Как мы обрабатываем проблемы с базами данных во время развертывания? Как задаются свойства подключения к базе данных для конкретного развертывания? Что делать, если обновление до более новой версии (или возврат к старой версии) приложения CakePHP требует изменения схемы базы данных и переноса данных?
- Как настроить свойства, которые различаются между развертываниями? Например, рассмотрите расширенные уровни отладки и регистрации, используемые во время разработки, не позволяя отправлять платежи на платежные шлюзы во время разработки и т.д.
- Как обновление или восстановление развертывания влияет на клиентов? Например, что, если они находятся в середине транзакции (например, покупка продукта)?
- Как мы обрабатываем разные типы установки CakePHP? Возможно, файлы необходимо установить в разных местах в зависимости от типа установки. Как узнать, где должны быть установлены файлы? Книга CakePHP описывает разработку, производство и расширенные установки.
Извините за столько вопросов в одном сообщении, но я думаю, что все вопросы связаны друг с другом, и подумал, что было бы полезно продолжить обсуждение в одном месте.