From a78fb85d82750d1fcd664a2259151758cb7d367e Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Wed, 29 Jan 2014 02:48:46 +0400 Subject: [PATCH] Added advanced application configs schema to docs, fixed the fact that there's now common/config/main.php --- docs/guide/apps-advanced.md | 7 +++++-- docs/guide/images/advanced-app-configs.png | Bin 0 -> 24884 bytes 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 docs/guide/images/advanced-app-configs.png diff --git a/docs/guide/apps-advanced.md b/docs/guide/apps-advanced.md index fd41be7f19..38ac76a318 100644 --- a/docs/guide/apps-advanced.md +++ b/docs/guide/apps-advanced.md @@ -99,6 +99,8 @@ Typically environment contains application bootstrap files such as `index.php` a In order to avoid duplication configurations are overriding each other. For example, frontend reads configuration in the following order: +- `common/config/main.php` +- `common/config/main-local.php` - `frontend/config/main.php` - `frontend/config/main-local.php` @@ -111,8 +113,9 @@ Parameters are read in the following order: 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. +Here's the full scheme: + +![Advanced application configs](images/advanced-app-configs.png) Configuring Composer -------------------- diff --git a/docs/guide/images/advanced-app-configs.png b/docs/guide/images/advanced-app-configs.png new file mode 100644 index 0000000000000000000000000000000000000000..198371948d0c24279d67ef7e03774214a6e80760 GIT binary patch literal 24884 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 literal 0 HcmV?d00001