DotPlant2 documentation

Организация работы и рабочего простанства

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

Рекомендуемые приложения для разработки

  • IDE - PhpStorm
  • Оболочка для работы с Git - SourceTree (win/mac) или SmartGIT (win/mac/linux)
  • OpenServer для Windows или системные Apache/PHP/MySQL для Linux/MacOSX

Каркас приложения - рабочий компьютер разработчика

Как правило, разработка сайта на dotplant2 происходит без модификации файлов ядра.

Первым делом необходимо склонировать репозиторий dotplant2:

git clone https://github.com/DevGroup-ru/dotplant2.git

Теперь необходимо произвести базовую установку DotPlant2 согласно инструкции.

Сайтоспецифичный функционал

Весь сайтоспецифичный функционал, включая тему оформления вашего сайта, мы рекомендуем держать в отдельной папке application/web/theme.

Для создания этой папки и базового каркаса есть специальная консольная команда:

./yii admin/create-theme

Подробнее про структуру папки темы можно почитать в разделе Использование собственной темы.

Для удобной работы необходимо создать репозиторий для темы:

cd application/web/theme
git init
git remote add origin [email protected]:vendor/repo.git # эта команда добавит remote origin к текущему репозиторию темы

Теперь ваш сайтоспецифичный функционал и тема оформления находятся под системой контроля версий.

Обязательно замените your.git.host:vendor/repo.git на соответствующее для вашего репозитория значение!

Выкатка на боевой сервер(production)

При первой выкатке вам необхоидмо:

  1. Склонировать ядро DotPlant2
  2. Склонировать в папку application/web/theme свой репозиторий с темой
  3. Перенести все конфигурационные файлы из application/config локальной машины на боевой сервер, при этом:
    • заменить доступы к базе данных или создать db-local.php с доступами для конкретного сервера
    • заменить везде(в том числе в configurables-state) переменную serverName на домен production сервера
  4. Скопировать базу данных с локальной машины на production например через простой SQL-дамп.
  5. Выставить необходимые права(chmod -R 777 application/web/assets applicaiton/runtime)
  6. Установить composer-зависимости - cd application; php ../composer.phar install

Некоторые разработчики предпочитают не устанавливать composer зависимости напрямую на сервере, а копировать их с локальной машины(путём копирования содержимого папки application/vendor). Такой вариант допустим, однако может повлечь за собой конфликты.

Обновление на боевом сервере(production)

Обновление ядра DotPlant2 CMS выполняется в следующем порядке.

Из папки, где был склонирован dotplant2:

git pull         # обновить git репозиторий
cd application
composer install  # обновить зависимости composer
./yii migrate    # применить миграции

Далее из папки application/web/theme необходимо обновить ваш персональный репозиторий с сайтоспецифичным функционалом и темой:

git pull

В некоторых случаях может потребоваться очистка assets и кеша. Для этого в backend есть кнопка в верхнем правом углу с изображением ластика.

Альтернативно кеш можно почистить консольной командой:

cd application
./yii cache/flush cache

Не забывайте, что изменений в базе данных и загруженные файлы на вашей локальной машине не попадают в систему контроля версий. В то же время, постоянно копировать БД на боевой сервер также не желательно - могут быть потеряны изменения, заказы и заполненные формы заявки, которые были произведены напрямую на сайте.

Общий процесс работы

  1. Обновить DotPlant2 на локальной машине, сделать composer update и обновить репозиторий(git pull) сайтоспецифичного функционала
  2. Разработать сайтоспецифичный функционал
  3. Обновить DotPlant2 на локальной машине и сделать composer update
  4. Проверить, что всё работает, и только после этого делать git commit из репозитория сайтоспецифичного функционала(application/web/theme)
  5. Сделать git pull из репозитория сайтоспецифичного функционала, чтобы актуализировать изменения, сделанные другими разработчиками сайта
  6. При необходимости смержить конфликты и сделать git push
  7. Провести обновление на боевом сервере(см. пункт выше)
  8. При изменении конфигов - повторить изменения на боевом сервере
  9. Проверить работоспособность боевой версии сайта и его критичных компонентов(формы заказа, контактные страницы, корзина и т.д.)