Commit 1367f957 by Alexander Makarov

more on advanced app docs

parent 55b0b410
...@@ -42,10 +42,42 @@ There's also a `common` directory that contains files used by more than one appl ...@@ -42,10 +42,42 @@ There's also a `common` directory that contains files used by more than one appl
frontend and backend are both web applications and both contain `web` directory. That's the webroot you should point your frontend and backend are both web applications and both contain `web` directory. That's the webroot you should point your
webserver to. webserver to.
Each application has its own namespace and alias corresponding to its name. Same applies to common directory.
Configuration and environments Configuration and environments
------------------------------ ------------------------------
There are multiple problems with straightforward approach to configuration:
- Each team member has its own configuration options. Commiting such config will affect other team members.
- Production database password and API keys should not end up in repository.
- There are multiple servers: development, testing, production. Each should have its own configuration.
- Defining all configuration options for each case is very repetitive and takes too much time to maintain.
In order to solve these issues Yii introduces environments concept that is very simple. Each environment is represented
by a set of files under `environments` directory. `init` command is used to switch between these. What is really does is
just copying everything from environment directory over the root directory where all applications are.
Typically environment contains application bootstrap files such as `index.php` and config files postfixed with
`-local.php`. These are added to `.gitignore` and never added to source code repository.
In order to avoid duplication configurations are overrding each other. For example, frontend reads configuration in the
following order:
- `frontend/config/main.php`
- `frontend/config/main-local.php`
Parameters are read in the following order:
- `common/config/params.php`
- `common/config/params-local.php`
- `frontend/config/params.php`
- `frontend/config/params-local.php`
The later config file overrides the former.
Another difference is that most application component configurations are moved to params. Since params are read from
`common` as well it allows you to specify database connection in one file and it will be then used for all applications.
Configuring Composer Configuring Composer
-------------------- --------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment