rmrevin / yii2-application
Yii 2 Advanced Application Template edited by rmrevin
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=5.5.0
- rmrevin/yii2-comments: ~1.1
- rmrevin/yii2-fontawesome: ~2.10
- rmrevin/yii2-minify-view: ~1.7
- rmrevin/yii2-postman: ~2.2
- rmrevin/yii2-rbac-command: ~1.1
- rmrevin/yii2-socicon: ~1.0
- rmrevin/yii2-xxtea: ~1.2
- yiisoft/yii2: ~2.0
- yiisoft/yii2-authclient: ~2.0
- yiisoft/yii2-bootstrap: ~2.0
- yiisoft/yii2-composer: ~2.0
- yiisoft/yii2-imagine: ~2.0
- yiisoft/yii2-swiftmailer: ~2.0
Requires (Dev)
- codeception/codeception: ~2.0
- codeception/phpbuiltinserver: ~1.1
- codeception/specify: ~0.3
- codeception/verify: ~0.2
- yiisoft/yii2-codeception: ~2.0
- yiisoft/yii2-debug: ~2.0
- yiisoft/yii2-faker: ~2.0
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
- Клонировать проект через git
- Скопировать файл
.environment.example.php
в.environment.php
, заполнить необходимые данные. MYSQL - основаня база, MYSQL_TEST - копия базы для автоматических тестов. - Установить зависимости через композер
./composer.phar install
(если нет композера, установить через./getcomposer
) - С помощью команды
./init
выбрать нужное окружение - Развернуть миграции
./frontend migrate
- Установить frontend зависимости через npm
npm install
- Скомпилировать less в css
phing less
- Создать пользователя-администратора
./frontend user/add
, программа спросит придумать имя, email и пароль
Система готова к эксплуатации.
Обновление
- Обновить кодовую базу через git
- Обновить композер
./composer.phar selfupdate
- Обновить зависимости через композер
./composer.phar update
- Развернуть новые миграции
./frontend migrate
- Оновить frontend зависимости через npm
npm update
- Скомпилировать 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