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. | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[](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 | 
					#### 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