rmrevin/yii2-application

Yii 2 Advanced Application Template edited by rmrevin

dev-master 2015-05-15 20:31 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:43:41 UTC


README

Создание нового приложения

Если у Вас не установлен Composer, вы должны установить его следуя инструкция на официальном сайтеа getcomposer.org.

Новый проект Вы можете создаь выполнив команду:

php composer.phar create-project --prefer-dist --stability=dev rmrevin/yii2-application my-new-application

Подготовка окружения

Для обработки bower пакетов, в системе требуется глобально установить пакет fxp/composer-asset-plugin. Делается это командой

php composer.phar global require "fxp/composer-asset-plugin:1.0.0"

Для полуавтоматического деплоя используется phing. Установить phing не составляет труда. Для этого необходимо выполнить команду

pear channel-discover pear.phing.info
pear install --alldeps phing/phing

Деплой

Document root -

  • Web - ~/frontend-app/web
  1. Клонировать проект через git
  2. Скопировать файл .environment.example.php в .environment.php, заполнить необходимые данные. MYSQL - основаня база, MYSQL_TEST - копия базы для автоматических тестов.
  3. Установить зависимости через композер ./composer.phar install (если нет композера, установить через ./getcomposer)
  4. С помощью команды ./init выбрать нужное окружение
  5. Развернуть миграции ./frontend migrate
  6. Установить frontend зависимости через npm npm install
  7. Скомпилировать less в css phing less
  8. Создать пользователя-администратора ./frontend user/add, программа спросит придумать имя, email и пароль

Система готова к эксплуатации.

Обновление

  1. Обновить кодовую базу через git
  2. Обновить композер ./composer.phar selfupdate
  3. Обновить зависимости через композер ./composer.phar update
  4. Развернуть новые миграции ./frontend migrate
  5. Оновить frontend зависимости через npm npm update
  6. Скомпилировать less в css phing less

Система готова к эксплуатации.

Полуавтоматический деплой и обновление

Сначала потребуется скачать обновление из гита командой git pull, затем выполнить одну из команд:

  • phing build/production - собрать проект для продакшена.
  • phing build/demo - собрать проект для demo площадки.
  • phing build/dev - собрать проект для dev площадки.

Дополнительно доступны следующие команды (они выполняются в рамках build/* команд, и добавлены только для справки):

  • phing clear - удалить все временные файлы и логи во всех приложениях.
  • phing clear/frontend - удалить все временные файлы и логи в приложении frontend.
  • phing migrate - выполнить все новые миграции для всех приложений
  • phing migrate/frontend - выполнить все новые миграции для приложения frontend

Основные моменты

За основу каркаса взят yii2-advance-application. Он позволяет создавать комплекс из разных приложений с разными подходами (обычное web приложение, cli приложение, rest приложение). На данный момент, в проекте созданны следующие приложения:

  • frontend-app - основное web приложение.

Так же присутствуют несколько вспомогательных разделов:

  • common - общие для всех приложений ресурсы (конфиги, расширяющие компоненты фреймворка, хелперы)
  • frontend-modules - здесь хранятся модули для web приложения. Это как раз таки те модули, которые вызываются из веба. В идеале, здесь должны быть только расширяющие компонениы, контроллеры, модели форм и представления.

Для запуска тестов

Для того, чтобы запустить codeception тесты, необходимо скопировать конфигурации для тестов и настроить их для своей плащадки.

Автоматически, это поможет сделать phing. Запускаете из корня проекта команду phing build/codecept, и конфиги автоматически скопируются.

Для ручного копирования необходимо в директориях erp-app/tests и hub-app/tests скопировать файлы acceptance.suite.yml.dist в acceptance.suite.yml, functional.suite.yml.dist в functional.suite.yml и unit.suite.yml.dist в unit.suite.yml.

После того, как файлы были скопированы, необходимо их настроить. В acceptance.suite.yml необходимо изменить параметры PhpBrowser/url и REST/url под настройки Вашей площадки.

Остальные файлы могут быть оставлены без изменений.

После создания конфигов, нужно "собрать" "актёров" для тестирования. Для этого из корня проекта выполните команды

./codecept build -c web-app/tests/codeception.yml

Теперь можно приступать непосредственно к запуску тестов.

Для этого из корня провека выполните команду

# запустить выполнение всех тестов во всех приложениях
./codecept run

# запустить выполнение только тестов для erp приложения
./codecept run -c web-app/tests/codeception.yml

# запустить выполнение только unit тестов для hub приложения
./codecept run -c web-app/tests/codeception.yml unit

# запустить выполнение определённого unit теста для hub приложения
./codecept run -c web-app/tests/codeception.yml unit commands/UserCommandTest.php

Для генерации карты покрытия кода к вызову комманды добавьте параметр --coverage-html. Для отображения более подробной иформации по ходу выполнения теста к вызову комманды добавьте параметр --debug.

./codecept run --coverage-html
./codecept run -c web-app/tests/codeception.yml --coverage-html --debug