Error202
2 years ago
1 changed files with 25 additions and 212 deletions
@ -1,233 +1,46 @@ |
|||||||
<p align="center"> |
# Yii 2 Basic + Vue3 + Vite |
||||||
<a href="https://github.com/yiisoft" target="_blank"> |
|
||||||
<img src="https://avatars0.githubusercontent.com/u/993323" height="100px"> |
|
||||||
</a> |
|
||||||
<h1 align="center">Yii 2 Basic Project Template</h1> |
|
||||||
<br> |
|
||||||
</p> |
|
||||||
|
|
||||||
Yii 2 Basic Project Template is a skeleton [Yii 2](https://www.yiiframework.com/) application best for |
Болванка для проекта с серверной частью на Yii2, к клиентской - на Vue3. |
||||||
rapidly creating small projects. |
Сборщик - Vite. База данных - PostgreSQL |
||||||
|
|
||||||
The template contains the basic features including user login/logout and a contact page. |
Для разработки нужен запущенный на компьютере Docker |
||||||
It includes all commonly used configurations that would allow you to focus on adding new |
|
||||||
features to your application. |
|
||||||
|
|
||||||
[![Latest Stable Version](https://img.shields.io/packagist/v/yiisoft/yii2-app-basic.svg)](https://packagist.org/packages/yiisoft/yii2-app-basic) |
### Установка |
||||||
[![Total Downloads](https://img.shields.io/packagist/dt/yiisoft/yii2-app-basic.svg)](https://packagist.org/packages/yiisoft/yii2-app-basic) |
|
||||||
[![build](https://github.com/yiisoft/yii2-app-basic/workflows/build/badge.svg)](https://github.com/yiisoft/yii2-app-basic/actions?query=workflow%3Abuild) |
|
||||||
|
|
||||||
DIRECTORY STRUCTURE |
--- |
||||||
------------------- |
|
||||||
|
|
||||||
assets/ contains assets definition |
#### Yii2 |
||||||
commands/ contains console commands (controllers) |
|
||||||
config/ contains application configurations |
|
||||||
controllers/ contains Web controller classes |
|
||||||
mail/ contains view files for e-mails |
|
||||||
models/ contains model classes |
|
||||||
runtime/ contains files generated during runtime |
|
||||||
tests/ contains various tests for the basic application |
|
||||||
vendor/ contains dependent 3rd-party packages |
|
||||||
views/ contains view files for the Web application |
|
||||||
web/ contains the entry script and Web resources |
|
||||||
|
|
||||||
|
- composer install |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
REQUIREMENTS |
#### Vue3 |
||||||
------------ |
|
||||||
|
|
||||||
The minimum requirement by this project template that your Web server supports PHP 7.4. |
- cd vue3 |
||||||
|
- npm i |
||||||
|
|
||||||
|
### Запуск |
||||||
|
|
||||||
INSTALLATION |
- make init |
||||||
------------ |
|
||||||
|
|
||||||
### Install via Composer |
### Доступ |
||||||
|
|
||||||
If you do not have [Composer](https://getcomposer.org/), you may install it by following the instructions |
Доступ к сайту по ссылке (изменить можно в docker-compose.yml): |
||||||
at [getcomposer.org](https://getcomposer.org/doc/00-intro.md#installation-nix). |
|
||||||
|
|
||||||
You can then install this project template using the following command: |
- http://localhost:8001 |
||||||
|
|
||||||
~~~ |
Доступ к разработке на Vue3 (после запуска команды dev из package.json): |
||||||
composer create-project --prefer-dist yiisoft/yii2-app-basic basic |
|
||||||
~~~ |
|
||||||
|
|
||||||
Now you should be able to access the application through the following URL, assuming `basic` is the directory |
- http://localhost:5173 |
||||||
directly under the Web root. |
|
||||||
|
|
||||||
~~~ |
### Особенности |
||||||
http://localhost/basic/web/ |
|
||||||
~~~ |
|
||||||
|
|
||||||
### Install from an Archive File |
Доступ к консольным командам |
||||||
|
|
||||||
Extract the archive file downloaded from [yiiframework.com](https://www.yiiframework.com/download/) to |
- docker-compose run --rm php composer install |
||||||
a directory named `basic` that is directly under the Web root. |
|
||||||
|
|
||||||
Set cookie validation key in `config/web.php` file to some random secret string: |
Если не запускается в контейнере PostgreSQL на Windows, то выполните последовательно указанные ниже команды и повторите запуск |
||||||
|
|
||||||
```php |
- net stop winnat |
||||||
'request' => [ |
- net start winnat |
||||||
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation |
|
||||||
'cookieValidationKey' => '<secret random string goes here>', |
|
||||||
], |
|
||||||
``` |
|
||||||
|
|
||||||
You can then access the application through the following URL: |
|
||||||
|
|
||||||
~~~ |
|
||||||
http://localhost/basic/web/ |
|
||||||
~~~ |
|
||||||
|
|
||||||
|
|
||||||
### Install with Docker |
|
||||||
|
|
||||||
Update your vendor packages |
|
||||||
|
|
||||||
docker-compose run --rm php composer update --prefer-dist |
|
||||||
|
|
||||||
Run the installation triggers (creating cookie validation code) |
|
||||||
|
|
||||||
docker-compose run --rm php composer install |
|
||||||
|
|
||||||
Start the container |
|
||||||
|
|
||||||
docker-compose up -d |
|
||||||
|
|
||||||
You can then access the application through the following URL: |
|
||||||
|
|
||||||
http://127.0.0.1:8000 |
|
||||||
|
|
||||||
**NOTES:** |
|
||||||
- Minimum required Docker engine version `17.04` for development (see [Performance tuning for volume mounts](https://docs.docker.com/docker-for-mac/osxfs-caching/)) |
|
||||||
- The default configuration uses a host-volume in your home directory `.docker-composer` for composer caches |
|
||||||
|
|
||||||
|
|
||||||
CONFIGURATION |
|
||||||
------------- |
|
||||||
|
|
||||||
### Database |
|
||||||
|
|
||||||
Edit the file `config/db.php` with real data, for example: |
|
||||||
|
|
||||||
```php |
|
||||||
return [ |
|
||||||
'class' => 'yii\db\Connection', |
|
||||||
'dsn' => 'mysql:host=localhost;dbname=yii2basic', |
|
||||||
'username' => 'root', |
|
||||||
'password' => '1234', |
|
||||||
'charset' => 'utf8', |
|
||||||
]; |
|
||||||
``` |
|
||||||
|
|
||||||
**NOTES:** |
|
||||||
- Yii won't create the database for you, this has to be done manually before you can access it. |
|
||||||
- Check and edit the other files in the `config/` directory to customize your application as required. |
|
||||||
- Refer to the README in the `tests` directory for information specific to basic application tests. |
|
||||||
|
|
||||||
|
|
||||||
TESTING |
|
||||||
------- |
|
||||||
|
|
||||||
Tests are located in `tests` directory. They are developed with [Codeception PHP Testing Framework](https://codeception.com/). |
|
||||||
By default, there are 3 test suites: |
|
||||||
|
|
||||||
- `unit` |
|
||||||
- `functional` |
|
||||||
- `acceptance` |
|
||||||
|
|
||||||
Tests can be executed by running |
|
||||||
|
|
||||||
``` |
|
||||||
vendor/bin/codecept run |
|
||||||
``` |
|
||||||
|
|
||||||
The command above will execute unit and functional tests. Unit tests are testing the system components, while functional |
|
||||||
tests are for testing user interaction. Acceptance tests are disabled by default as they require additional setup since |
|
||||||
they perform testing in real browser. |
|
||||||
|
|
||||||
|
|
||||||
### Running acceptance tests |
|
||||||
|
|
||||||
To execute acceptance tests do the following: |
|
||||||
|
|
||||||
1. Rename `tests/acceptance.suite.yml.example` to `tests/acceptance.suite.yml` to enable suite configuration |
|
||||||
|
|
||||||
2. Replace `codeception/base` package in `composer.json` with `codeception/codeception` to install full-featured |
|
||||||
version of Codeception |
|
||||||
|
|
||||||
3. Update dependencies with Composer |
|
||||||
|
|
||||||
``` |
|
||||||
composer update |
|
||||||
``` |
|
||||||
|
|
||||||
4. Download [Selenium Server](https://www.seleniumhq.org/download/) and launch it: |
|
||||||
|
|
||||||
``` |
|
||||||
java -jar ~/selenium-server-standalone-x.xx.x.jar |
|
||||||
``` |
|
||||||
|
|
||||||
In case of using Selenium Server 3.0 with Firefox browser since v48 or Google Chrome since v53 you must download [GeckoDriver](https://github.com/mozilla/geckodriver/releases) or [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) and launch Selenium with it: |
|
||||||
|
|
||||||
``` |
|
||||||
# for Firefox |
|
||||||
java -jar -Dwebdriver.gecko.driver=~/geckodriver ~/selenium-server-standalone-3.xx.x.jar |
|
||||||
|
|
||||||
# for Google Chrome |
|
||||||
java -jar -Dwebdriver.chrome.driver=~/chromedriver ~/selenium-server-standalone-3.xx.x.jar |
|
||||||
``` |
|
||||||
|
|
||||||
As an alternative way you can use already configured Docker container with older versions of Selenium and Firefox: |
|
||||||
|
|
||||||
``` |
|
||||||
docker run --net=host selenium/standalone-firefox:2.53.0 |
|
||||||
``` |
|
||||||
|
|
||||||
5. (Optional) Create `yii2basic_test` database and update it by applying migrations if you have them. |
|
||||||
|
|
||||||
``` |
|
||||||
tests/bin/yii migrate |
|
||||||
``` |
|
||||||
|
|
||||||
The database configuration can be found at `config/test_db.php`. |
|
||||||
|
|
||||||
|
|
||||||
6. Start web server: |
|
||||||
|
|
||||||
``` |
|
||||||
tests/bin/yii serve |
|
||||||
``` |
|
||||||
|
|
||||||
7. Now you can run all available tests |
|
||||||
|
|
||||||
``` |
|
||||||
# run all available tests |
|
||||||
vendor/bin/codecept run |
|
||||||
|
|
||||||
# run acceptance tests |
|
||||||
vendor/bin/codecept run acceptance |
|
||||||
|
|
||||||
# run only unit and functional tests |
|
||||||
vendor/bin/codecept run unit,functional |
|
||||||
``` |
|
||||||
|
|
||||||
### Code coverage support |
|
||||||
|
|
||||||
By default, code coverage is disabled in `codeception.yml` configuration file, you should uncomment needed rows to be able |
|
||||||
to collect code coverage. You can run your tests and collect coverage with the following command: |
|
||||||
|
|
||||||
``` |
|
||||||
#collect coverage for all tests |
|
||||||
vendor/bin/codecept run --coverage --coverage-html --coverage-xml |
|
||||||
|
|
||||||
#collect coverage only for unit tests |
|
||||||
vendor/bin/codecept run unit --coverage --coverage-html --coverage-xml |
|
||||||
|
|
||||||
#collect coverage for unit and functional tests |
|
||||||
vendor/bin/codecept run functional,unit --coverage --coverage-html --coverage-xml |
|
||||||
``` |
|
||||||
|
|
||||||
You can see code coverage output under the `tests/_output` directory. |
|
Loading…
Reference in new issue