2017 © Pedro PelΓ‘ez
 

project yii2-application

Yii 2 Advanced Application Template edited by rmrevin

image

rmrevin/yii2-application

Yii 2 Advanced Application Template edited by rmrevin

  • Friday, May 15, 2015
  • by rmrevin
  • Repository
  • 1 Watchers
  • 3 Stars
  • 16 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 14 % Grown

The README.md

ΠšΠ°Ρ€ΠΊΠ°Ρ yii2 application

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния

Если Ρƒ Вас Π½Π΅ установлСн Composer, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ слСдуя инструкция Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтСа getcomposer.org., (*1)

Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ создаь Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:, (*2)

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

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° окруТСния

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ bower ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π² систСмС трСбуСтся глобально ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ fxp/composer-asset-plugin. ДСлаСтся это ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, (*3)

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

Для полуавтоматичСского дСплоя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ phing. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ phing Π½Π΅ составляСт Ρ‚Ρ€ΡƒΠ΄Π°. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (*4)

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

Π”Π΅ΠΏΠ»ΠΎΠΉ

Document root - * Web - ~/frontend-app/web, (*5)

  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 ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ

БистСма Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ эксплуатации., (*6)

ОбновлСниС

  1. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Ρ‡Π΅Ρ€Π΅Π· git
  2. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ€ ./composer.phar selfupdate
  3. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·Π΅Ρ€ ./composer.phar update
  4. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ./frontend migrate
  5. ΠžΠ½ΠΎΠ²ΠΈΡ‚ΡŒ frontend зависимости Ρ‡Π΅Ρ€Π΅Π· npm npm update
  6. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ less Π² css phing less

БистСма Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ эксплуатации., (*7)

ΠŸΠΎΠ»ΡƒΠ°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π‘Π½Π°Ρ‡Π°Π»Π° потрСбуСтся ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π³ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git pull, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄: * phing build/production - ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°. * phing build/demo - ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для demo ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ. * phing build/dev - ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для dev ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ., (*8)

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ доступны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… build/* ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для справки): * phing clear - ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π»ΠΎΠ³ΠΈ Π²ΠΎ всСх прилоТСниях. * phing clear/frontend - ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π»ΠΎΠ³ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ frontend. * phing migrate - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ для всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ * phing migrate/frontend - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ для прилоТСния frontend, (*9)

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹

Π—Π° основу каркаса взят yii2-advance-application. Он позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ комплСкс ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌΠΈ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, cli ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, rest ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅). На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ созданны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния: * frontend-app - основноС web ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅., (*10)

Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: * common - ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ рСсурсы (ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, Ρ…Π΅Π»ΠΏΠ΅Ρ€Ρ‹) * frontend-modules - здСсь хранятся ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для web прилоТСния. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈ Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Π²Π΅Π±Π°. Π’ ΠΈΠ΄Π΅Π°Π»Π΅, здСсь Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΠΈΡ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹, ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ„ΠΎΡ€ΠΌ ΠΈ прСдставлСния., (*11)

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

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ codeception тСсты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для тСстов ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… для своСй ΠΏΠ»Π°Ρ‰Π°Π΄ΠΊΠΈ., (*12)

АвтоматичСски, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ phing. ЗапускаСтС ΠΈΠ· корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ phing build/codecept, ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ автоматичСски ΡΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ., (*13)

Для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ копирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² дирСкториях 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., (*14)

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ скопированы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. Π’ acceptance.suite.yml Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ PhpBrowser/url ΠΈ REST/url ΠΏΠΎΠ΄ настройки Π’Π°ΡˆΠ΅ΠΉ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ., (*15)

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ оставлСны Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ., (*16)

ПослС создания ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², Π½ΡƒΠΆΠ½ΠΎ "ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ" "Π°ΠΊΡ‚Ρ‘Ρ€ΠΎΠ²" для тСстирования. Для этого ΠΈΠ· корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, (*17)

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ нСпосрСдствСнно ΠΊ запуску тСстов., (*18)

Для этого ΠΈΠ· корня ΠΏΡ€ΠΎΠ²Π΅ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (*19)

# Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ всСх тСстов Π²ΠΎ всСх прилоТСниях
./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., (*20)

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

The Versions