Dostarczanie konfiguracji w zależności od środowiska jest dość powszechnym zadaniem i istnieje wiele innych sposobów na radzenie sobie z tym.
Zmienne środowiskowe
Jeśli środowisko na to pozwala, możesz użyć zmiennych środowiskowych. Możesz łatwo podać konfigurację bazy danych przez DATABASE_URL
zmienna w postaci ciągu połączenia DSN, jak
mysql://user:[email protected]/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Książka kucharska> Konfiguracja> Zmienne środowiskowe
Dodatkowe pliki konfiguracyjne
Inną opcją jest załadowanie oddzielnych/dodatkowych plików konfiguracyjnych w oparciu o bieżące środowisko, dzięki czemu można wdrożyć tylko te pliki, które są faktycznie wymagane w określonym środowisku.
Configure::load('app', 'default', false);
// $enviroment needs to be validated /sanitzied in order to
// avoid loading arbitrary files from the config directory
Configure::load($enviroment, 'default', true);
Książka kucharska> Konfiguracja> Ładowanie dodatkowych Pliki konfiguracyjne
Aliasing połączeń
Jest też aliasowanie połączeń, CakePHP robi to automatycznie w środowisku testowym. Załóżmy, że masz default
i production
konfiguracji, możesz wtedy aliasować production
połączenie jako default
w Twoim środowisku produkcyjnym, dzięki czemu wszędzie Twój kod próbuje użyć default
połączenie, faktycznie użyje production
jeden.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API> \Cake\DataSource\ConnectionManager::alias()