Yii 2 Advanced Application Template is a skeleton Yii 2 application best for developing complex Web applications with multiple tiers.
The template includes three tiers: front end, back end, and console, each of which is a separate Yii application.
The template is designed to work in a team development environment. It supports deploying the application in different environments.
The minimum requirement by this application template that your Web server supports PHP 5.4.0.
Extract the archive file downloaded from yiiframework.com to
a directory named
advanced that is directly under the Web root.
Then follow the instructions given in "GETTING STARTED".
You can then install the application using the following command:
php composer.phar create-project --prefer-dist --stability=dev harrytang/yii2-app yii2-app
After you install the application, you have to conduct the following steps to initialize the installed application. You only need to do these once for all.
initto initialize the application with a specific environment.
yii migrate. This will create tables needed for the application to work.
/path/to/yii-application/frontend/web/and using the URL
/path/to/yii-application/backend/web/and using the URL
To login into the application, you need to first sign up, with any of your email address, username and password. Then, you can login into the application with same email address and password at any time.
Install additional composer packages:
php composer.phar require --dev "codeception/codeception: 1.8.*@dev" "codeception/specify: *" "codeception/verify: *"
This application boilerplate use database in testing, so you should create three databases that are used in tests:
yii2_advanced_unit- database for unit tests;
yii2_advanced_functional- database for functional tests;
yii2_advanced_acceptance- database for acceptance tests.
To make your database up to date, you can run in needed test folder
yii migrate, for example
if you are starting from
frontend tests then you should run
yii migrate in each suite folder
it will upgrade your database to the last state according migrations.
To be able to run acceptance tests you need a running webserver. For this you can use the php builtin server and run it in the directory where your main project folder is located. For example if your application is located in
/www/advanced all you need to is:
cd /www and then
php -S 127.0.0.1:8080 because the default configuration of acceptance tests expects the url of the application to be
If you already have a server configured or your application is not located in a folder called
advanced, you may need to adjust the
After that is done you should be able to run your tests, for example to run
frontend tests do:
In similar way you can run tests for other application tiers -
You also can adjust you application suite configs and
_bootstrap.php settings to use other urls and files, as it is can be done in