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.phpcommon/config/main-local.phpfrontend/config/main.phpfrontend/config/main-local.phpParametry są odczytywane w takiej kolejności:
common/config/params.phpcommon/config/params-local.phpfrontend/config/params.phpfrontend/config/params-local.phpKolejny plik konfiguracyjny nadpisuje poprzednika.
Poniżej przedstawiony jest pełny schemat:
