#php #drupal #production #stage
#php #drupal #производство #этап
Вопрос:
Завтра я нанимаю нового разработчика, поскольку теперь я работал один, теперь мне нужно внести некоторые изменения в разработку и выполнить этап stage — online какие ведущие инструменты (даже если нужно что-то заплатить) для этого? я увидел webenabled.. пока..
Ответ №1:
Вам понадобится своего рода система контроля версий (VCS) для кода вашего проекта. Поскольку Drupal.org теперь используйте Git, который довольно хорош и потрясающ, вам тоже следует. Существует несколько хостинговых решений для Git, наиболее популярным, кажется, является GitHub.
В вашем репозитории кода я рекомендую размещать не весь каталог сайта, а только ваш собственный пользовательский код. Независимо от используемого VCS, вот что я поместил в свой репозиторий кода
.make
Файл, используемый для загрузки ядра Drupal, модулей contrib и тем contrib и применения исправлений (при необходимости)module
папка только с пользовательскими модулямиthemes
папка только с пользовательскими темами- Скрипт сборки для
- запустите
drush make
файл.make
, чтобы загрузить ядро Drupal и внести вклад вdist
папку (VCS игнорируется) - скопируйте
modules
папку вdist/sites/all/modules/custom
- скопируйте
themes
папку в todist/sites/all/themes/custom
- запустите
Это для
- правильно отслеживайте изменения в пользовательском коде вашего проекта
- правильно отслеживайте используемые версии ядра и вкладов (в
.make
файле) - предотвращает взлом ядра или вкладов, но разрешает исправление при необходимости (Drush Make требует, чтобы примененные исправления были доступны по общедоступному HTTP-адресу)
Для сценария сборки я использую Phing, Но могут быть использованы любые языки сценариев (ant, bash, php, ruby и т.д.). При некоторой дополнительной работе скрипт сборки также может быть использован для запуска автоматического тестирования (самого простого) и проверки кода ( php -l
и проверки верстальщика).). В конце скрипт сборки создает и обновляет dist
папку, готовую к развертыванию.
Для проекта с несколькими разработчиками я стараюсь экспортировать как можно больше конфигураций в код вместо того, чтобы работать на уровне базы данных для хранения. В основном за счет использования экспортируемых объектов через модуль Features и наличия специфичного для проекта профиля для определения и обновления неэкспортируемых конфигураций с помощью его hook_install
и hook_update_N
реализаций. Смотрите Проблему с разработкой -> Промежуточный этап -> Производственный рабочий процесс в Drupal и презентацию Code driven development: эффективное использование функций в Drupal 6 и 7.
Ответ №2:
Для этого есть несколько вариантов, есть модуль развертывания, который является альфа-версией, но, по-видимому, работает хорошо. Затем есть обычный старый svn (или даже rsync ). Это позволяет выполнить работу довольно быстро и дает вам дополнительный бонус в виде управления исходным кодом, но вам нужно переносить базы данных вручную.
Последний, но не менее важный и самый мощный метод из трех упомянутых — drush.
Что бы вы ни выбрали, зависит от времени, которое вы готовы потратить на этот этап, потому что в краткосрочной перспективе все они требуют немного больше времени, чем простое копирование сайта в другую папку, но задача будет автоматизирована, как только вы это сделаете, поэтому в долгосрочной перспективе вы можете легко повторить развертывание, и здесь эти инструменты помогут вам сэкономить время.
Удачи!