Att tillhandahålla konfiguration beroende på miljön är en ganska vanlig uppgift, och det finns en hel del andra sätt att hantera detta.
Miljövariabler
Om miljön tillåter det kan du använda miljövariabler. Du kan enkelt tillhandahålla DB-konfiguration via DATABASE_URL variabel i form av en DSN-anslutningssträng som
mysql://user:example@sqldat.com/production?encoding=utf8&timezone=UTC&cacheMetadata=true
Kokbok> Konfiguration> Miljövariabler
Ytterligare konfigurationsfiler
Ett annat alternativ är att ladda separata/ytterligare konfigurationsfiler baserat på den aktuella miljön, så att du bara kan distribuera de filer som faktiskt krävs för en specifik miljö.
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);
Kokbok> Konfiguration> Laddar ytterligare Konfigurationsfiler
Anslutningsaliasing
Och det finns också anslutningsaliasing, CakePHP gör det automatiskt i testmiljön. Säg att du har en default och en production konfiuration, kan du sedan alias production anslutning som default i din produktionsmiljö, så att din kod överallt försöker använda default anslutning kommer den faktiskt att använda production en.
\Cake\DataSource\ConnectionManager::alias('production', 'default');
API> \Cake\DataSource\ConnectionManager::alias()