1 changed files with 25 additions and 212 deletions
			
			
		@ -1,233 +1,46 @@
					 | 
				
			||||
<p align="center"> | 
				
			||||
    <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 + Vue3 + Vite | 
				
			||||
 | 
				
			||||
Yii 2 Basic Project Template is a skeleton [Yii 2](https://www.yiiframework.com/) application best for | 
				
			||||
rapidly creating small projects. | 
				
			||||
Болванка для проекта с серверной частью на Yii2, к клиентской - на Vue3. | 
				
			||||
Сборщик - Vite. База данных - PostgreSQL | 
				
			||||
 | 
				
			||||
The template contains the basic features including user login/logout and a contact page. | 
				
			||||
It includes all commonly used configurations that would allow you to focus on adding new | 
				
			||||
features to your application. | 
				
			||||
Для разработки нужен запущенный на компьютере Docker | 
				
			||||
 | 
				
			||||
[](https://packagist.org/packages/yiisoft/yii2-app-basic) | 
				
			||||
[](https://packagist.org/packages/yiisoft/yii2-app-basic) | 
				
			||||
[](https://github.com/yiisoft/yii2-app-basic/actions?query=workflow%3Abuild) | 
				
			||||
### Установка | 
				
			||||
 | 
				
			||||
DIRECTORY STRUCTURE | 
				
			||||
------------------- | 
				
			||||
---  | 
				
			||||
 | 
				
			||||
      assets/             contains assets definition | 
				
			||||
      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 | 
				
			||||
#### Yii2 | 
				
			||||
 | 
				
			||||
- 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 | 
				
			||||
at [getcomposer.org](https://getcomposer.org/doc/00-intro.md#installation-nix). | 
				
			||||
Доступ к сайту по ссылке (изменить можно в docker-compose.yml): | 
				
			||||
 | 
				
			||||
You can then install this project template using the following command: | 
				
			||||
- http://localhost:8001 | 
				
			||||
 | 
				
			||||
~~~ | 
				
			||||
composer create-project --prefer-dist yiisoft/yii2-app-basic basic | 
				
			||||
~~~ | 
				
			||||
Доступ к разработке на Vue3 (после запуска команды dev из package.json): | 
				
			||||
 | 
				
			||||
Now you should be able to access the application through the following URL, assuming `basic` is the directory | 
				
			||||
directly under the Web root. | 
				
			||||
- http://localhost:5173 | 
				
			||||
 | 
				
			||||
~~~ | 
				
			||||
http://localhost/basic/web/ | 
				
			||||
~~~ | 
				
			||||
### Особенности | 
				
			||||
 | 
				
			||||
### Install from an Archive File | 
				
			||||
Доступ к консольным командам | 
				
			||||
 | 
				
			||||
Extract the archive file downloaded from [yiiframework.com](https://www.yiiframework.com/download/) to | 
				
			||||
a directory named `basic` that is directly under the Web root. | 
				
			||||
- docker-compose run --rm php composer install | 
				
			||||
 | 
				
			||||
Set cookie validation key in `config/web.php` file to some random secret string: | 
				
			||||
Если не запускается в контейнере PostgreSQL на Windows, то выполните последовательно указанные ниже команды и повторите запуск | 
				
			||||
 | 
				
			||||
```php | 
				
			||||
'request' => [ | 
				
			||||
    // !!! 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. | 
				
			||||
- net stop winnat | 
				
			||||
- net start winnat | 
				
			||||
					Loading…
					
					
				
		Reference in new issue