Typowe podejście do konfigurowania projektu stawia przed deweloperami wiele problemów:
Yii, dzięki prostej koncepcji środowisk, zapewnia rozwiązanie powyższych problemów. Każde środowisko jest reprezentowane
przez zestaw plików w folderze environments
. Środowisko jest inicjalizowane za pomocą komendy init
, która kopiuje
wszystko z folderu środowiskowego do głównego folderu, w którym znajdują się aplikacje.
Domyślnie zdefiniowane są dwa środowiska: dev
i prod
. Pierwsze jest środowiskiem rozwojowym, skonfigurowanym
z wszystkim narzędziami deweloperskimi i włączonym modułem debugowania. Drugie przeznaczone jest do wydania projektu
na serwerze i powyższe opcje są tam wyłączone.
Zwykle środowisko zawiera pliki skryptów wejściowych aplikacji jak np. index.php
oraz pliki konfiguracyjne
z przyrostkiem -local.php
, które przechowują osobiste ustawienia programistów (zazwyczaj dla środowiska dev
) lub też
konkretne ustawienia serwerowe. Dla przykładu, połączenie do produkcyjnej bazy danych mogłoby znajdować się w pliku
konfiguracyjnym -local.php
środowiska prod
.
Takie lokalne konfiguracje są dodawane do pliku .gitignore
i nie umieszczane nigdy w źródłowym repozytorium kodu.
Aby uniknąć duplikowania ustawień, pliki konfiguracyjne nadpisują się. Przykładowo, front-end odczytuje konfiguracje w następującej kolejności:
common/config/main.php
common/config/main-local.php
frontend/config/main.php
frontend/config/main-local.php
Parametry są odczytywane w takiej kolejności:
common/config/params.php
common/config/params-local.php
frontend/config/params.php
frontend/config/params-local.php
Kolejny plik konfiguracyjny nadpisuje poprzednika.
Poniżej przedstawiony jest pełny schemat: